Intro Flashcards
What are the two types of requirements in software development?
1) Functional: this includes any functions that must be supported by the system
2) Non-functional: overall quality of solution (may relate to performance of website - how fast, how “pretty”, etc, we may also say “efficiency requirements”)
What do we need to know to do requirements engineering?
1) General idea behind the system
2) Stakeholders that need the new solution
3) Motivations for production of a new system
4) Final usage environment
What does ‘effective’ mean?
A solution is effective if it meets the goals
What is Separation of Concerns?
This is a principle (rather than rule/law). By separating different involved concerns, it may help us cope with complexity and achieve quality factors (eg. adaptability, maintainability, extenability, etc)
What is a concern?
Set of information that affects the code in your software
How is Sep of Concerns different to modularity?
Modularity describes making the code more modular, while separation of concern is the encapsulation of different concerns
When we test, what do we test the quality of?
Functionality
Performance
Usability
What is the job of an application analyst?
Collects the motivations that trigger the development of the application and turns them into a specification of the application requirements
What is the job of a data architect?
Produces a conceptual data model that organizes the data into a structure and a representation that can be accessed and used by the application
What is application architect?
Focuses on those application requirements that deal with the functions and services that are to be delivered
What is a programmer/developer?
Seriously. Leave.
What is the administrator?
Main actor in deployment and evolution activities
Why web apps?
1) High accessibility of information and services
2) Document-centric hypertext interface
3) Variable technology for data management
4) Variable presentation technologies and engines
5) Complex architectures