Mapa mental
Software Engineering Web

Conteúdo do mapa
Software Engineering Web
What is software?
- Instructions that when executed provide desired features, function, and performance
- Data Structures that enable the programs to adequately manipulate information
- Documentation that describes the operation and use of the programs (or sets of instructions)
- Software Application Domains (or types of software)
- System Software
- operating systems, networking software, compilers etc.
- Application Software
- stand-alone programs for specific business need that facilitates business operations
- something used by a business
- stand-alone programs for specific business need that facilitates business operations
- Engineering/Scientific Software
- Software used in scientific work. Characterized by number crunching and/or simulation
- Embedded Software
- software built into some physical device. Controls functions for end user and system. Ex) microwave, car
- Product-line software
- software that satisfies the needs of a particular market. Ex) word processing, databases
- Web Applications
- any application hosted on the internet.
- Characterized by hypertext, graphics, interactive content, database, and business application access
- any application hosted on the internet.
- Artificial Intelligence Software
- characterized by non-numerical algorithms to solve complex tasks. Think robotics and pattern recognition
- Open World Computing
- pervasive, distributed computing that connects mobile devices, PCs, and enterprise systems via vast networks
- Netsourcing
- WWW as computing engine and content provider. Think search engine
- Open Source Software
- distribution of source code for systems applications, self descriptive with high quality change management
- Legacy Software
- developed a long time and continuously modified to meet changes in business requirements and computing platforms
- can be costly to maintain an older systems but also very risky to evolve to a new one
- developed a long time and continuously modified to meet changes in business requirements and computing platforms
- System Software
Defintion of Software engineering
- Fritz Bauer (1969)
- is the establishment and use of sound engineering principles in order to obtain economical software that is reliable and works efficiently on real machines
- IEEE (1993)
- the application pf a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. That is the application of engineering principles to software and the study of these principles.
- Fritz Bauer (1969)
Software Process
- a collection of activities, actions, and tasks that are performed when a work product is to be created. AKA who is doing what and when and how to reach a certain goal.
- an activity achieves a broader objective (a set of actions)
- an action is a set of tasks for a work product
- a task focuses on the completion of a small well-defined objective
- Process Framework/Model
- Framework activities (engineering activities) (many framework activities within one umbrella activity)
- communication, planning, modeling, construction, deployment
- task set within each action within one framework activity is decided by the software team based on the problem
- Generic Process Flows
- Umbrella Activities (management activities) many within one process framework
- software project management, risk management, software quality assurance, formal technical reviews, measurement, software configuration management, reusability management, work product preparation and production
- each the activities within a process resides in a framework or model that defines their relationship with the process and each other
- Categories of Process Models
- Prescriptive Process Models
- defined by a prescribed set of process elements and a predictable process flow
- highly structured and facilitate coordination and cohesion in software work
- the rigid structure may not be well suited for a software world generally defined by change
- Waterfall Model
- follows a linear process flow
- ideal when project requirements are well understood and not likely to change
- assumes all of the skills needed to build the project are available
- disadvantage is that no working product until the end
- Waterfall Model with Feedback
- same basic linear process flow except after each step there are feedback loops to all of the previous steps
- V- Model
- analogous linear process flow. Each testing phase (unit testing, integration testing, system testing, acceptance testing) is tied to each of the previous linear framewor activities
- again no working product until very end
- defined by a prescribed set of process elements and a predictable process flow
- Incremental Process Models
- delivers a series of releases called increments
- each increment provides progressively more functionality for the customer as each increment is delivered. Each increment adds a feature that is observable by the customer
- The work for each increment can follow any process flow. However subsequent increments can be started before prior ones finish
- For example, in a linear process flow during the "Construction" phase of increment #1, the "Communication" phase can occur for increment #2
- delivers a series of releases called increments
- Evolutionary Process Models
- releases increments similar to the incremental process model, however each increment does not necessarily add a new "feature." The system simply becomes a more complete version of the system. The customer may not notice any difference between two increments as things under the hood may have changed.
- satisfies the need to introduce limited versions to meet competitive or business pressures
- accounts for the fact that business and product requirements often change during development. This model explicitly accomodates that evolution
- Prototyping
- Rapidly produce prototype to present customer with some idea of what the system might be like
- this helps to mitigate risks early as customer gets a better idea of requirements
- Disadvantage is that customer thinks the product is further along than it actual is. They are unaware of shortcuts and compromises under the hood
- Rapidly produce prototype to present customer with some idea of what the system might be like
- Spiral Model
- with each spiral the system grows
- realistic model for large scale systems
- risk driven process model (uses prototyping) that is used multi stake holder software systems
- Concurrent Models
- parallelizes tasks and is ideal for projects involving multiple engineering teams from different disciplines.
- think embedded software or low level/close to hardware development
- parallelizes tasks and is ideal for projects involving multiple engineering teams from different disciplines.
- Drawbacks
- project planning is hard but its difficult to project the number of cycles needed
- The speed at which the system evolves is not defined
- still prioritizes high/quality which sacrifices some flexibility and extrnsibility
- Prescriptive Process Models
- Framework activities (engineering activities) (many framework activities within one umbrella activity)
- Process Pattern
- describes a consistent method for describing problem solutions within the context of a software process
- Process Assessment
- attempts to understand the current state of the software process with the intent of improving it
- a collection of activities, actions, and tasks that are performed when a work product is to be created. AKA who is doing what and when and how to reach a certain goal.
General Principles
- George Polya (1945) "How to solve it". AKA the essence of problem solving
- Step 1: Understand the problem (communication and analysis)
- Step 2: Plan the solution (modeling and design)
- Step 3: Carry out the plan (generation)
- Step 4: Examine the result for accuracy (quality assurance)
- Hooker (1996)
- KEEP IT SIMPLE STUPID
- George Polya (1945) "How to solve it". AKA the essence of problem solving
Imagens e arquivos do mapa
Informações
- Descrição
- Topics in the course
- Criado por
- Thomas Lindblom · out 2016
- Atualizado
- 3 fev 2018
- Visualizações
- 2
- Avaliação

