Software Engineering Essentials: Principles and Practices
Introduction to Software Engineering
Software engineering is a discipline through which we develop or create software for computer systems and other electronic devices. It is a process where user needs are analyzed, and software is designed based on these needs. Software engineering defines scientific principles, methods, and procedures. Software engineers build software and applications using design and programming languages.
To create complex software, we should use engineering techniques. To reduce
Read MoreProject Management: Deliverables, Milestones & Scheduling
Project Deliverables
Definition: Products that, in a certain state, are exchanged between customers and developers throughout the IT project implementation.
Feasibility Study Deliverables
Brief description of the proposed system and its features.
Analysis Deliverables
- Requirements capture
- System Specification
Design Deliverables
A detailed description of the system will contain:
- Programs, reusable modules, and objects.
- Files and databases.
Coding Deliverables
Documents the final design of the system and each
Read MoreConsensus Building: Achieving Win-Win Outcomes in Requirements Engineering
Consensus Building (Win-Win)
Aims at bringing a number of stakeholders to consensus, a typical problem during requirements engineering.
Incremental, Risk-Driven Spiral Process
- Identification of stakeholders
- Identification of win conditions
- Conflict resolution
Asynchronous Groupware Tool
- Stakeholders post win conditions
- Facilitator detects conflict
- Stakeholders discuss alternatives
- Stakeholders make agreements
- Review and expand negotiation topics
Objective: Refine and customize the outline of negotiation topics.
UI Design: Key Concepts and Methods
Here’s a concise cheat sheet summarizing the key definitions and concepts from your notes:
Direct Manipulation and Invisible Interfaces
Direct Manipulation
Software Development Life Cycle Models: Waterfall, Incremental, RAD, Prototype
Software Development Life Cycle Models
Waterfall Model
The Waterfall model means that the requirements of a problem are well understood and stable in the 5 Stages of Generic Software Engineering. Documents are generated in each stage. Revisions are made after each stage; the process only passes to the next stage if the previous stage is completed.
Advantages:
- Recommended for products that have a stable definition.
- Recommended when working with known methodologies.
- Helps to minimize the costs of planning
Software Engineering: Testing, ISO 12207, Quality & Planning
Software Testing Principles
Analyze the set of testing principles adopted in software engineering? Here’s a concise summary of the testing principles in software engineering:
- Testing Shows Presence of Defects: Testing reveals defects but cannot prove the software is defect-free.
- Exhaustive Testing Is Impossible: It’s impractical to test all possible scenarios; prioritize critical areas.
- Early Testing Saves Time and Costs: Detecting defects early in the SDLC reduces effort and cost.
- Defect Clustering: