Software Engineering

Description

Mind Map on Software Engineering, created by Mohamed Moalin on 15/04/2014.
Mohamed Moalin
Mind Map by Mohamed Moalin, updated more than 1 year ago
Mohamed Moalin
Created by Mohamed Moalin over 10 years ago
144
0

Resource summary

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. Dependable
      1. Secure
        1. Reliable
          1. Safe
          2. Efficient
            1. Makes good use of recourses
              1. Memory
                1. processor
                  1. Network capacities
                2. Usable
                  1. Easy to learn
                    1. Appropriate for tasks
                      1. takin into account different classes of users
                      2. Delivers the required functionality
                        1. Maintainable
                          1. Easily evolve with changing needs/appropriate documentation
                        2. Causes of system failure
                          1. Coding Errors
                            1. Errors in supporting infrastructure
                              1. Errors in translating requirements to design
                                1. Incorrect interpretation or omission of user requirements
                                2. Software Project Management
                                  1. Costing
                                    1. Economic feasibility study
                                      1. Cost/Benefit analysis
                                        1. TB-TC/TC
                                    2. Monitoring and Reviews
                                      1. Personnel seletion and evaluation
                                        1. Report writing & presentation
                                          1. Difficulties in project management
                                            1. Projects are intangible
                                              1. Projects are uniquely inflexible
                                                1. The software development isn't standardized
                                                  1. Many software are one-off projects
                                                2. Project Planning/Scheduling
                                                  1. Constraints
                                                    1. Budget
                                                      1. Time
                                                        1. infrastructure
                                                        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
                                                          1. Which can run concurrently
                                                            1. Milestones
                                                            2. Milestones
                                                            3. Software Processes
                                                              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.
                                                                1. 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
                                                                  1. Exploratory development
                                                                    1. Development starts from a core of well understood requirements, systems involve as customers experiment with intermediate versions
                                                                    2. Throw-away prototyping
                                                                      1. Development starts from poorly understood parts of the system, to clarify requirements early versions are quickly made and withdrawn
                                                                        1. Later versions can use a more structured approach for example the waterfal method
                                                                      2. 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
                                                                      3. Specification

                                                                        Attachments:

                                                                        1. Development
                                                                          1. Validation
                                                                            1. Evaluation
                                                                              Show full summary Hide full summary

                                                                              Similar

                                                                              Design Patterns
                                                                              Erica Solum
                                                                              Network Protocols
                                                                              Shannon Anderson-Rush
                                                                              System Analysis
                                                                              R A
                                                                              SCRUM
                                                                              R A
                                                                              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
                                                                              DEPENDABLE SYSTEMS
                                                                              A J
                                                                              Requerimientos
                                                                              Romina V.