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.

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

Annotations:

  •  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
1.2.1.1 Memory
1.2.1.2 processor
1.2.1.3 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
3.1.1.1 Cost/Benefit analysis
3.1.1.1.1 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

Annotations:

  • 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

Annotations:

  • 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

Annotations:

  • 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
5.2.1.1 Development starts from a core of well understood requirements, systems involve as customers experiment with intermediate versions
5.2.2 Throw-away prototyping
5.2.2.1 Development starts from poorly understood parts of the system, to clarify requirements early versions are quickly made and withdrawn
5.2.2.2 Later versions can use a more structured approach for example the waterfal method
5.3 Encremental development

Annotations:

  • 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

Attachments:

7 Development
8 Validation
9 Evaluation

Media attachments