It follows that a concerted effort should be made to understand the problem before a software solution is developed
It follows that design becomes a pivotal activity
It follows that software should exhibit high quality.
It follows that software should be maintainable.
Software engineering is a ____________.
layered technology
The bedrock that supports software engineering is a __________.
quality focus
The foundation of software engineering is the ________ layer.
process
The software engineering _______ is the glue that holds the technology layers together and enables rational and timely development of computer software.
process
Software engineering ________ provide the technical how-to’s for building software.
methods
Software engineering ______ provide automated or semi-automated support for the process and the methods.
tools
When tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called _______________, is established
computer-aided software engineering
Software Engineering layers:
Tools
Methods
Process
Quality focus
collection of activities, actions, and tasks that are performed when some work is to be created.
Process
strives to achieve a broad objective and is applied regardless of the application domain, size of the project, complexity of the effort, or degree of rigor with which software engineering is to be applied.
Activity
encompasses a set of tasks that produce a major work product.
Action
focuses on small, but well-defined objective that produces a tangible outcome.
Task
(T/F) In the context of software engineering, a process is not a rigid prescription for how to build computer software.
True
established the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity.
Process framework
Process framework established the foundation for a complete software engineering process by identifying a small number of _____________ that are applicable to all software projects, regardless of their size or complexity.
framework activities
The process framework encompasses a set of ___________ that are applicable across the entire software process.
umbrella activities
Process Frameworks:
Communication
Planning
Modeling
Construction
Deployment
provides stakeholders with a subset of overall software features and functionality.
Software increment
Umbrella Activities:
Software project tracking and control
Risk management
Software quality assurance
Technical reviews
Measurement
Software configuration management
Reusability management
Work product preparation and production
allows the software team to assess progress against the project plan and take any necessary action to maintain the schedule.
Software project tracking and control
assesses the risk that may affect the outcome of the project or the quality of the product.
Risk management
defines and conducts the activities required to ensure software quality.
Software quality assurance
assess software engineering work products in an effort to uncover and remove errors before they are propagated to the next activity.
Technical reviews
defines and collects process, project and product measures that assist the team in delivering software that meets stakeholder’s needs.
Measurement
manages the effects of change throughout the software process.
Software configuration management
defines criteria for work reuse and establishes mechanisms to achieve reusable components.
Reusability management
encompasses the activities requires to create work such as models, logs, forms and lists.
Work product preparation and production
Essence of software engineering practice:
Understand the problem (communication and analysis)
Plan a solution (modeling and software design)
Carry out the plan (code generation)
Examine the result (testing and quality assurance)
an important underlying law or assumption required in a system of thought.
Principle
General Principles in Software Engineering:
The Reason It All Exists
KISS (Keep it simple, stupid)
Maintain the Vision
What you produce, Others will consume
Be open to failure
Plan ahead for reuse
Think
A software system exists for one reason: to provide value to its users.
The Reason It All Exists
All design should be as simple as possible, but no simpler.
KISS (Keep it simple, stupid)
A clear vision is essential to the success of a software project.
Maintain the Vision
Always specify, design and implement knowing someone else will have to understand what you are doing.
What you produce, Others will consume
Never design yourself into a corner.
Be open to failure
Reduces the cost and increases the value of both the reusable components and the systems into which they are incorporated.
Plan ahead for reuse
Placing clear, complete thought before action almost always produces better results.
Think
erroneous beliefs about software and the process that is used to build it.
Software development myths
(T/F) Software requirements continually change, but change can be easily accommodated because software is flexible.
True
(T/F) Software engineering is not about creating documents. It is about creating a quality product. Better quality leads to reduced rework, and reduced rework results in faster delivery times.
True
One of the most effective software quality assurance mechanisms can be applied from the inception of a project – the ____________.