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 |