Unit 1 Flashcards
AAFRUU
List six characteristics that a good software system should possess.
A good software system should be:
- Affordable
- Available
- Flexible
- Reliable
- Usable
- Useful
CMS
What are the three characteristics of software that affect its development and likelihood of errors, and why?
- Complexity
- Generally, the more complex software is, the higher number of errors
- Malleability
- Software is easy to change, creating a pressure for software to be changed rather than replaced, introducing the possibility of new errors
- Size
- There will usually be more errors in a large piece of software than a small one
OCCULT LM
What are the 8 characteristics of legacy systems?
- old
- 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
What is software architecture?
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.
DR DIT
What are the 5 typical technical activities for the development of software?
- Domain modelling
- Requirements
- Design
- Implementation
- Testing
What is Agile development?
Agile development is an approach to software development that puts people and working software at the forefront of the development process.
What are the 4 values mentioned in the Agile manifesto?
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What is the Unified Process (UP)?
The Unified Process (UP) is a popular iterative and incremental development process for building enterprise systems based on an object-oriented approach, and using UML.
What are the 5 best practices promoted by the Unified Process (UP)?
- Development should be organised in short timeboxed iterations (three to four weeks)
- Development should be adaptive to accommodate inevitable change
- High risk issues should be dealt with in early iterations
- The user’s perspective should be prioritised by involving users in requirements, evaluation and feedback
- A view of the system’s architecture should be built in early iterations
IECT
What are the 4 phases of the Unified Process (UP)?
- Inception
- Business case is developed
- An idea of the scope is realised
- Rough estimate of the effort required is made
- Elaboration
- Core of the system is developed in an iterative fashion
- All major risks are addressed and resolved
- Most of requirements are identified and dealt with
- More realistic estimate of effort required is made
- Construction
- Final product is constructed, including the remaining lower risk and easier elements of the system, again in an iterative fashion
- Transition
- Beta testing the system
- Deploying the system
What are the 5 views in the Unified Process (UP)?
- Use case view
- Basic scenarios that describe the users and tasks they need to perform with the aid of a software system
- Scenarios are partitioned into use cases
- Logical view
- Functional requirements of the software system
- Involves the construction models that represent the main elements of a system and how they interact
- Implementation view
- Concerned with the organisation of the code modules that comprise a software system
- Addresses the management of source code, data files and executables
- Deployment view
- Concerned with the relationship between the various executables and their intended computer systems
- Process view
- Concerned with aspects of concurrency, including how processes and threads interact
- Deals with such things as response time, deadlock and fault tolerance
DR A DIT D
What are the 7 core activities that follow the Unified Process (UP) discipline?
- Domain modelling
- Modelling what already exists in the domain
- Requirements
- Identifying, categorising, prioritising and modelling what the system must do
- Analysis
- Modelling how the structure and behaviour of the system will meet its specification from a user’s perspective
- Design
- Deciding on the distribution of responsibilities to fulfil that specification
- Implementation
- Producing code that will meet the user requirements
- Testing
- Ensuring that the software does meet its requirements
- Deployment
- Configuring the code to give a runnable system
What 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.
What are the 5 artefacts produced during domain modelling?
- 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
What is the purpose of the requirements phase?
The requirements phase is concerned with establishing and modelling what a software system must do.