• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/24

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

24 Cards in this Set

  • Front
  • Back

How is software engineering similar to others?

Abstraction and modularity

Requires analysis and synthesis

Analysis:breaking problem down into smaller peices. abstraction




Sysnthesis: building from smaller blocks composition

Solving problems: method, tool,procedure,paradigm

Method:a formal procedure for accomplishing a goal




Tool: an instrument or system that can accomplish a task




Procedure: a combination of tools and techniques to produce a product




Paradigm: A philosophy for building a product (OO vs structured)

Computer science, software engineering

Computer science: focusing on compilers, hardware, OS, languages


Software engineering: uses computer and software technologies as problem solving tools

What is software?

instructions: computer programs that, when executed, provide desired features




data structures: allow program to store and maniipulate information




documentation

Why must software change?

adapted to new environments or technology


enhanced to implement new business requirements


extended to make it work with other software


re-architected to make it viable within a network

Software costs

costs more that hardware


costs more to maintain than develop



Essential attributes of good software

maintainability


dependablility and security


efficiency


acceptibility



what is software engineering?

systematic, disciplined,quantifiable approach to thedevelopment, operation and maintenanceof software




Or




an engineering disciplinethat is concerned with all aspects of softwareproduction

Engineering discipline

Using appropriate theories and methods to solve problemsbearing in mind organizational and financial constraints.

4 aspects of software engineering knowledge

computing funadmentals


software product engineering


software management


software domains



No software engineering?

attitude of managers towards software development.


-design and documentation a waste of time


-only care about lines of code or features


poor project,unreasonable deadlines


hack toeghet something vs design and devleop


maintainence nightmares

Why sfotware projects fail

Complexity


-divide into units with clear interfaces


-each unit has no idea of the larger picture


-all changes must be reported to everyone




problem to be solved can be difficult. clear commuication between programmers and application specialist




software itself can make things difficult. correct tools.




size of the team

system engineering vs software engineering

System engineering is concerned with all aspects ofcomputer-based systems development includinghardware, software and process engineering.Software engineering is part of this processconcerned with developing the softwareinfrastructure, control, applications and databasesin the system.

Software development process

Process framework


Software engineering process


Software process models

Process Framework

Framework activities-communication,planning,modelling,construction,deployment




umbrella activities-qulality assurance etc

Software process

A. Specification - what the system should do and itsdevelopment constraints




B. Development - production of the software system(designed and implemented)




C. Validation - checking that the software is what thecustomer wants




D. Evolution - changing the software in response tochanging demands.

Software specification

Requirements engineering process


-Feasibility study, specification, etc

Design and implementation

Design process activities:


architectural design


interface design


component design


database esign

Validation

Testing stages


component testing


system testing


acceptance testing

Software process model

• A simplified representation of a software process,presented from a specific perspective.

Key challenges facing software engineers

Heterogeneity– Developing techniques for building software that can copewith heterogeneous platforms and execution environments;




• Delivery– Developing techniques that lead to faster delivery ofsoftware;




• Trust– Developing techniques that demonstrate that software canbe trusted by its users.

Issues of professional responsibility

confidentiality


compotence


intellectual property rights


computer misues (playing games, hacking)




ACM/IEEE Code of Ethics