Karteikarten
F1. Approaches to software development.
Karten in diesem Stapel (59)
- 1Name 3 characteristics of software that increase the likelihood of errors.Malleability.
As change is easy to make, often changes are introduced without thorough consideration of the full consequences of each new change introduced.
Complexity.
The more complex a piece of software becomes, the more chances there are of a change affecting other parts of the software.
Size.
The greater the number of lines of code in a piece of software, the greater the number of likely errors. - 2What is the defining quality of a good software system, and what are its main characteristics?A good software system is one that meets its users’ needs. We can characterise a good software system as useful, usable, reliable, flexible, available and affordable
- 3characteristics of legacy systemsold
large
developed using outdated techniques
implemented with old programming languages
critical to the business
changed a number of times since their inception
difficult to understand because of either a lack of documentation about their internal structure or a lack of experience within the group responsible for them
difficult to maintain because of the above factors. - 4CADcomputer-aided dispatch (CAD) system
- 5decompositionSplitting a problem into smaller and smaller parts or chunks until each one can be comprehended or dealt with by an individual. In software we identify a number of different activities or tasks that an individual or a group of individuals might perform.
(See also partition.) - 6moduleA program unit (or component) that is used exclusively through an external interface. It is important for enabling a system to be comprehended at any required level of detail. A software system is a collection of modules.
- 7heroic programmingA form of software development where a single person attempts to have in mind everything concerning a given problem and its eventual solution.
- 8heroic programmingA form of software development where a single person attempts to have in mind everything concerning a given problem and its eventual solution.
- 9domainAn area or field of knowledge characterised by a set of concepts and terminology that is understood by practioners in that area.
- 10modularisation modularityThe division of a software system into separately named and addressable components, called modules, that are integrated to meet the requirements. Modularity is a basic attribute of software that allows the partition of a set of requirements into a number of intellectually manageable subsets.
- 11interfaceIn general, this refers to the operations (methods), including their syntax and semantics, that a software system/subsystem/module provides to the clients of the system. In the object-oriented approach, the public operations associated with an object are referred to as its interface, or its interface operations. In Java, an interface is a construct similar to a class, which provides a specification (in the form of method headings but no implementation) of the methods for which classes implementing the interface must provide implementations.
- 12encapsulationHiding from the clients of a class the details of how the class is implemented. In other words, it is the process of hiding (making private) all the methods and data fields of a class used in the implementation of the public methods (or interface) of the class.
- 13context dependencyA service required by a module in order for it to work.
- 14abstractionThe process of describing the essential features of a problem and ignoring other details. It permits you to concentrate on a problem at some level of generalisation, without regard to irrelevant detail. It also permits you to work with concepts, terms and models that are familiar in the problem environment (or domain).
- 15couplingA measure of interconnection among modules in a software system. In software development, low coupling is preferred to high coupling as it results in a more flexible software system.
- 16circular dependencyA series of two or more dependencies between different things (typically modules within a software system) that form a closed loop. If module A depends on module B which depends on module C, then a circular dependency arises if module C depends on module A.
- 17cohesionA way of describing how closely the activities within a single module are related to each other. A cohesive module should, ideally, do just one thing. In software development, high cohesion is preferred to low cohesion as it results in a more flexible software system because each module performs clearly defined operations/tasks.
- 18moduleA program unit (or component) that is used exclusively through an external interface. It is important for enabling a system to be comprehended at any required level of detail. A software system is a collection of modules.
- 19Give examples of the kinds of information that would be valuable when considering a change to a given module.Which modules are clients of the module in question? This information indicates how far a change may propagate through the software system.
What assumptions have been made in client modules of the module in question? An understanding of the expected services of a module will help assess the risks associated with a particular change. - 20What are the context dependencies of a module? How do they relate to a module’s interface?The context dependencies for a module are the services of other modules that the module needs in order to work correctly. You can express the context dependencies for a module in terms of other interfaces. You can express the responsibilities of a module in terms of its interface and context dependencies. If the context provides the services that the module needs and clients meet any conditions specified in the interface, the module can guarantee the provision of the services described in its interface.
- 21What are the benefits of using modules with defined interfaces?Developers will need to know only about the module’s interface
Fewer bugs will be introduced
Easier to find bugs, as irrelevant modules are avoided.
Module reuse is increased once it is known what that module provides and requires. - 22software architecture‘… the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.’ (Bass, Clements and Kazman, 2012.)
- 23Suggest some similarities and differences between software architecture and building architecture.They are both abstractions of the structure of a system. They represent decisions that will affect concerns of different stakeholders. They are used as a communication vehicle with different stakeholders.
- 24Draw a 3 layered architecture
- 25software qualityAt a general level, this defines the extent to which the customer is satisfied with the software product delivered at the end of the development process. At a more detailed level, it involves conformance to explicitly stated requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software.
- 26engineeringA systematic approach to efficiently developing products which are fit for purpose, based on a body of knowledge.
- 27Give the characteristics of an engineering approach that support the argument that software development is an engineering discipline.Concerned with meeting a set of requirements.
Uses a defined process with clear activities, each has at least one identifiable end product.
Developers apply their skills and experience to the tasks.
Validation and verification are regarded to be as essential as building the software itself
It makes use of tools and standards
it follows a code of practice. - 28life cycleThe sequence in which a number of different activities are carried out to define an overall process for the development of a software system.
- 29development processA set of rules that define how a software development project should be carried out. It incorporates a life cycle and involves a number of methods and procedures.
- 30deliverableAn output, such as a design document or source code, of some software development activity whose production gives evidence of the completion of the activity.
- 31waterfall modelA life cycle that uses the analysis, design, implementation and testing activities in a simple sequence with no iteration. Some versions append the maintenance activity.
- 32iterationA distinct sequence of activities within a life cycle that may be repeated. Within a development process, the result is a (software) deliverable that conforms to certain criteria.
- 33Iterative and incremental development process diagram
- 34What is a development process?A development process is a set of rules that defines how a software development project should be carried out. It incorporates a number of activities, and a process model (or life cycle) that indicates how these activities are ordered.
- 35What should the role of project management be with respect to the deliverables of a development project?Project management involves the identification of the appropriate deliverables for a given set of requirements and controlling the cost of producing them. Project management also involves ensuring that deliverables are produced on time and taking steps to cope with any delays.
- 36Suggest a reason why maintenance is a core activity in the development of a good software system.Maintenance allows a software system to evolve over its operational lifetime so that it continues to be useful.
- 37What additional task is needed when the development of a software system is partitioned into a number of increments?A task devoted to the integration of the increments to form the final software system will be needed.
- 38plan-driven developmentTerm used to distinguish traditional, more prescriptive approaches to software development from agile development approaches.
- 39configuration managementThe task of managing configuration items, which involves identifying the components of a continuously evolving system (the configuration) at discrete points in time, for the purposes of controlling changes to the configuration, and maintaining integrity and traceability throughout the system’s lifetime.
- 40risk managementAnalysis of risks in a development process and determination of steps to reduce them.
- 41Spiral process to deal with risk (diagram)
- 42In the spiral process to deal with risk what are the 4 steps that are repeated with each iteration?1. Determine the objectives, the alternatives and the constraints
2. Evaluate the objectives and identify and resolve the associated risks
3. Develop and verify a (partial) solution or product
4. Review that solution, and plan the activities for the next iteration. - 43Why is traceability important to the development of software?Traceability is important for the reconstruction of significant events. In software development it should be possible to follow all the activities undertaken in response to a proposed change. In particular, you should be able to trace backwards from an implemented component or components, through their design, to a given requirement.
- 44How does documentation contribute to traceability within a development project?Within a development project, documentation records the progress from requirements to implementation (and beyond). It is possible to identify each requirement and follow the actions taken to implement a solution to that requirement. You might, quite simply, be required to show that you have implemented each requirement correctly.
- 45How would you characterise agile documentation?Agile documentation should be gathered with a purpose, should be easy to use and above all should justify the effort put into gathering it. There is no reason why this shouldn’t apply to any kind of documentation but often software development produces heavy documentation that is rarely used.
- 46What kinds of software system would be best suited to an iterative and incremental development process?Software systems where the problem can grow incrementally or where it falls naturally into partitions, each of which represents a fairly self-contained unit that could be developed and delivered on its own to provide the users with a useful chunk of functionality, would be well suited to this model. An iterative and incremental approach allows several design issues to be tackled simultaneously and enables the system to be implemented in relatively small steps in order to contain the complexity.
- 47It has been said that ‘the maintenance activity begins with the first deliverable of a development project’. What does this imply about the maintenance activity?This refers to the fact that there could be deliverables, such as requirements documents, that exist prior to any software being built, and these also require maintenance. For example, you might detect errors or inconsistencies in a document that lists the important terms in your users’ domain, or you might have to respond to changes in the environment, which may be due to new regulations or market forces.
- 48Name 6 conditions that are met if software development follows an engineering approachmeets a set of clearly defined requirements
uses defined processes with an identifiable end product
developers apply skills and experience
validation and verification are essential
makes use of tools and standards
follows a code of practice - 49What are the best practices of UP?Dealing with high risk issues in early iteration.
Prioritising the user's perspective in requirements, evaluation and feedback.
Building a view of the systems architecture in early iterations. - 50A UP project is organised into 4 phasesInception - a business case developed, idea of the scope of the system and effort required.
Elaboration - Core of the system is developed in an iterative fashion, major risks are addressed and resolved, requirements identified and dealt with and a more realistic estimate of the effort required.
Construction - Final product constructed, including the remaining lower risk and easy elements.
Transition - Includes beta testing and deploying the system. - 51UP phases and disciplines
- 525 views of a software system architecture
- 53What is the purpose of domain modelling?Domain modelling is concerned with gaining an understanding of the environment in which any system that is designed must operate.
- 54What is the role of each of the artefacts produced during domain modelling?During domain modelling, we produce the following artefacts:
initial problem statement – a description of the problem
behaviour model – a description of the business processes and behaviour of the domain
business rules – constraints on the way the behaviour model operates
glossary – definitions of relevant terms
structural domain model – an initial structural model representing the concepts relevant to the domain - 55Volere templateThis is a template for a document that collates all the requirements of a system, together with other issues that may affect those requirements. The template provides a sort of container, in which the information can be organised systematically.
- 56What is the purpose of the requirements phase?The requirements phase is concerned with establishing and modelling what a software system must do.
- 57What is the purpose of analysis?Analysis starts modelling the structure and behaviour of a software solution from a user’s perspective.
- 58What is the purpose of design?Design is concerned with making decisions concerning how a system will meet its specification.
- 59What is the role of each of the artefacts produced during design?structural model, an updated version of the one produced during analysis but with its operations specified
behavioural models, showing how objects in the system will interact and behave internally, and also how functionality will be distributed across the system
Informationen
- Beschreibung
- software engineering (1 - Approaches to software development) Karteikarten am F1. Approaches to software development., erstellt von Claire Lemon am 10/09/2016.
- Erstellt von
- Claire Lemon
- Aufrufe
- 0
- Tags
- Bewertung