Lecture 5 Flashcards
What is SW ENGINEERING?
Software engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance
What are some concrete software processes?
- Waterfall model (and variant)
- V-model
- Spiral model
- Extreme Programming
- SCRUM
Why is SW engineering difficult?
- Complexity
Part of the software, can’t be removed - Conformity
Difficult to plan for changes (easy enough to conform for them tho) - Changeability [Flexibility]
Software is everchanging - Invisibility
Lack of visuals
What is software?
- Computer program and their associated documentation (requirements, design models and user manuals)
- New software can be created by developing new programs,configuring generic software systems or reusing existing software
Software product can either be:
- Generic - developed to be sold to a general market (excel or word)
- Custom - developed for a single customer according to their specification
What does it mean when saying SW is a modeling activity?
Because we have a problem and solution domain, which we can model i OOP
Fortolker jeg fra hans lorte slide
Working definition of software engineering:
Software Engineering is a collection of techniques, methodologies, and tools that help with the production of a high quality software system developed with a given budget before a given deadline while change occurs
Challenge: Dealing with complexity and change
Is knowledge acquisition (knowledge gaining) linear?
It is NOT linear
How would you outline software engineering?
- Modeling activity
- Problem solving activity
- Knowledge acquisition activity
- Rationale managament activity
What are ‘Techniques (Methods)’ in software development?
Our notes:
A process of outputting results using e.g. algorithms.
Lecture slides:
Formal procedures for producing results using a well-defined notation, such as algorithms and software processes.
How would you describe the problem-solving activity in software?
- Formulate the problem
- Analyse the problem
- Search for solutions
- Decide on the appropriate solution
- Specify the solution
Which domains are difficult in SW development?
Problem (Application) domain and solution domain. Explanation: Deeply understanding the needs and context of the end users (problem domain) and then skillfully creating a technical solution (solution domain) that meets those needs effectively (CHADDY)
What are the stages in OOSD (object oriented software development)?
- Requirement elicitation
- Analysis
- System design
- Object design
- Implementation
- Testing
Define ‘Methodology’ in the context of software development.
A collection of techniques applied across software development, unified by a philosophical approach. Example: Agile methods.
Software engineering is a rationale managament activity. What does rationale management activity entail?
- Application domain eventually stabilises
- Solution domain is constantly changing
- How can we reason about a decision taken in the past?
What are ‘Tools’ in software engineering?
Instruments or automated systems used to accomplish a technique. Examples include Eclipse and continuous integration.
What activities are common to all software processes?
Software specification
- Establish what functional (services) and non-functional (system’s operation and development) requirements there should be
Software development
- Software design (realise specifications) and implementation (translate design into executable)
Software validation
- Verification: “Are we building the product right?”
- Validation: “Are we building the right product?”
Software evolution
- Change existing software systems to meet new requirements. The software must evolve to remain useful
Explain this picture:
- If you want to increase the scope (more functions), you may need to increase the cost and/or the time. Reducing the cost could mean reducing the ** scope and/or compromising the quality.**
Delivering the project in less time might increase **costs ** (due to overtime, etc.) or reduce the scope or quality.
What does Barry’s variant of the Waterfall model contain?
It integrates quality assurance through validation and verification and feedback throughout the whole model rather than just through the neighbouring phases.
Her
A software process (model) describes:
systematic, structured and quantifiable
approaches to solve a repeatable manner
What are the steps of Barry’s variant of the Waterfall model?
System feasibility (Validation), SW Plans and Requirements (Validation), Product Design (Verification), Detail design (Verification), Code (Unit Test), Integration (Product Verification), Implementation (System Test), Operation + Maintenance (Revalidation).
A software process (model) is:
an abstract representation of a process. It presents a description of a process from some particular perspective.