Software Engineering

Mohamed Moalin
Mind Map by , created over 5 years ago

Mind Map on Software Engineering, created by Mohamed Moalin on 04/15/2014.

Mohamed Moalin
Created by Mohamed Moalin over 5 years ago
Relational Operators
BCS Code of Conduct
GCSE AQA Biology 1 Cloning & Genetic Engineering
Lilac Potato
Plant and animal cells
Tyra Peters
JOOSE2 Design Patterns
Isaac Jordan
Pears of Wisdom - Software Engineering Overview
Alex Poiry
2 Introduction
Alex C
Example Use Case: Emergency Management System
Stephanie Jeandell
Software Engineering


  •  Software engineering is the discipline concerned with all aspects of complex software production, from initial specification through development to delivery and maintenance of the final product.  
1 Good quality software is
1.1 Dependable
1.1.1 Secure
1.1.2 Reliable
1.1.3 Safe
1.2 Efficient
1.2.1 Makes good use of recourses Memory processor Network capacities
1.3 Usable
1.3.1 Easy to learn
1.3.2 Appropriate for tasks
1.3.3 takin into account different classes of users
1.4 Delivers the required functionality
1.5 Maintainable
1.5.1 Easily evolve with changing needs/appropriate documentation
2 Causes of system failure
2.1 Coding Errors
2.2 Errors in supporting infrastructure
2.3 Errors in translating requirements to design
2.4 Incorrect interpretation or omission of user requirements
3 Software Project Management
3.1 Costing
3.1.1 Economic feasibility study Cost/Benefit analysis TB-TC/TC
3.2 Monitoring and Reviews
3.3 Personnel seletion and evaluation
3.4 Report writing & presentation
3.5 Difficulties in project management
3.5.1 Projects are intangible
3.5.2 Projects are uniquely inflexible
3.5.3 The software development isn't standardized
3.5.4 Many software are one-off projects
4 Project Planning/Scheduling
4.1 Constraints
4.1.1 Budget
4.1.2 Time
4.1.3 infrastructure
4.2 Activities/Tasks


  • Value of activity networks: - provide insight to non-obvious dependencies among tasks. -They help to optimise allocation of resources.  -a- allocate more people to tasks in critical path in order to shorten project time.  -b- allocate less people to tasks on non-critical paths tasks and allow them to finish later without any impact on the overall time  - They may initiate design changes that could shorten the critical path.  . - They may be used to partly automate project planning
4.2.1 Which can run concurrently
4.2.2 Milestones
4.3 Milestones
5 Software Processes
5.1 The waterfall method


  • Requirements definition:the system services and constraints are established consulting the users. These are defined in detail and form a specification. System and software design: requirements are allocated to hardware and software, and an overall architecture is established. Software design involves identification of objects, data and operations. implementation and unit testing:Software design is realised as a set of program units. Unit testing verifies that each unit meets its specification. integration and system testing:Units are integrated and tested to ensure requirements have been met. Delivery of product. operation and maintenance: Correction of errors and changes to accommodate new demands.
5.2 Evolutionary development


  • Advantages: By experimenting with incremental versions, users develop a better understanding of their needs. Avoiding omission and misinterpretation of requirements
  • Disadvantages Development is not transparent documentation is labour intensive and pointless for throwaway prototyping special tools may be needed failure rate high for each change
5.2.1 Exploratory development Development starts from a core of well understood requirements, systems involve as customers experiment with intermediate versions
5.2.2 Throw-away prototyping Development starts from poorly understood parts of the system, to clarify requirements early versions are quickly made and withdrawn Later versions can use a more structured approach for example the waterfal method
5.3 Encremental development


  • Advantages management of large projects become easier functions are delivered with each increment functionality is available earlier lower risk of overall project failure highest priority systems are delivered earlier and are tested more
6 Specification


7 Development
8 Validation
9 Evaluation

Media attachments