Chapter 1 - Introduction to Software Engineering.

¡Supera tus tareas y exámenes ahora con Quizwiz!

What are the costs of Software Engineering?

Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.

What is software?

Softwares are computer programs and associated documents (models, system requirements form, documentation). Software Products may be developed for a particular customer or may be developed for a general market.

Why is software evolution important?

1. More and more, individuals and society rely on Advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly. 2. It's cheaper to use software engineering methods and techniques for professional software systems rather that just write program for personal projects (programming) Failure to use Software Engineering Methods leads to higher costs, for testing, quality assurance and maintenance.

What are the 7 principles of Software Development?

1. The reason it all exists 2. KISS (keep it simple, stupid) 3. Maintain the vision 4. What you produce, others will consume 5. Be open to the future 6. Plan ahead for reuse 7. THINK!

What are the essence of Software Practice?

1. Understand the problem (communication and analysis) who has the stake in the solution to the problem, what are the unknowns, can the problem be compartmentalized 2. Plan a Solution (modelling and software Design) how similar problems have been solved before, can subproblems be defined, can you represent a solution. 3. Carry out the plan (code generation) Does the solution conform to the plan. Is the source code be traceable to design. Is each component part of the solution. 4. Examine the result for accuracy (testing and quality assurance) Test the code/solution.

What is a process framework and its generic process framework activities?

A process framework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to all software projects, regardless of size of complexity. The five generic process framework is Communication, Planning, Modelling, Construction, and Deployment.

What are the elements of a software process? Activity Action Task

A process is a collection of activities, actions and task that are performed when some work product is to be created. Activity - achieve a broad objective and is applied regardless of application domain, size of project, and complexity of the effort. Action - encompasses a set of tasks that produce a major work product (architectural design to model). Task - Focuses on small (testing) that produces a tangible outcome.

What is Software Process?

A systematic approach in Software Engineering is the software process. Software process is a sequence of activities that leads to the production of a software product. Four Fundamental activities are common to all software process. 1. software specification 2. software development 3. software validation 4. software evolution

What are the essential characteristic/attributes of good software? 1. acceptability 2. dependability and security 3. Efficiency 4. maintainability

Acceptability - your software must be accepted by the user it is designed for. It must be understandable, usable, and compatible with other system that they use. Dependability - the software must be reliable, secure, and safe. It shouldn't cause physical or economical damage in the event of system failure. Efficiency - Your software should not waste system resources (memory, and cpu process cycle). Responsiveness and compile times. Maintainability - Evolve changing needs of customer. Changing business environments makes software change inevitable requirements.

What is the difference between Software Engineering and Computer Science?

Computer Science focuses on theory and fundamentals. Software Engineering is concerned with the practicalities of developing and delivering useful software.

What are the Software Engineering Ethics Principles? 1. Confidentiality 2. Competence 3. Intellectual Property Rights 4. Computer Misuse

Confidentiality - respect the confidentiality of the employer or clients regardless of whether or not a formal confidentiality agreement has been signed. Competence - you should not misrepresent your level of competence. Don't accept work outside of your knowledge. Intellectual Property Rights - Be aware of local laws Computer misuse - no hacking or game play of others computer.

What are the key challenges facing Software Engineering?

Coping with increasing diversity (technology, problems), demands for reduced delivery times and developing trustworthy software.

What are the software engineering fundamentals? 1. Development Process 2. Dependability and Performance 3. Requirements and Software Specification 4. Reuse existing resources.

Development Process - Development organization must have clear ideas of the outcome and deadline of the software product. Dependability and Performance - behave as expected, no failures, efficient, no waste of resources Requirements - you have tot know what different customers and users of the system expect from it. Reuse - you should reuse software where appropriate

What type of Products do Software Engineers Develop? 1. Generic Products 2. Customized Products

Generic Products - Stand-alone systems produced by a development organization and sold to an open market (to anyone). Ex. apps, software, PC's: databases, word processors and etc. Customized Software - Systems developed for a particular customer. A software contractor designs and implements the software especially for that customer. Ex. control systems for electronic devices systems for business process, air traffic control systems.

What are the attributes of good software?

Good Software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable.

What are the issues that affect different Types of Software? 1. Heterogeneity 2. Business and Social Change 3. Security and Trust 4. Scale Software

Heterogeneity - systems operate as distributed systems across networks that include different types of computer and mobile devices. Solution is to develop techniques for dependance software. Business and Social Change - As economies evolve, software needs to change its existing software and to rapidly develop new software. Security and Trust - make sure malicious users cannot successfully attack our software and that information security is maintained. Scale Software - Ranges from small embedded systems, to wearable devices. Can be scaled to be internet-base, cloud-based and etc.

What is the idealized Curve? Failure curve for the software

In theory, the failure curve for software is the idealized curve. Undiscovered defects will cause a higher failure rate in the beginning if the life of program. As the errors and defects are corrected, the curve flattens out. Software doesn't wear out it deteriorates! Every Software Failure indicates an error in design, software maintenance should take care of this.

What differences has the Internet made to Software Engineering?

Not only has the internet led to the development of massive, highly distributed, service based systems it has also supported the creation of an "app" industry for mobile devices which has changed the economics of software.

What is Software Quality?

Quality is therefore not just concerned with what the software does. Rather it has to include the software's behavior while it is executing and the structure and organization of the system programs and associated documents. It is reflected in the software quality and non-functional attributes.

Why is software Development?

Software Development is a professional activity in which software is developed for business purposes, for inclusion in other devices, or as software products such as info systems and computer-aided design systems. Software are maintained and changed throughout its life.

Why do Software Development fail?

Software Engineering Criticized as inadequate for modern "software products". But Software Development Fail because of 1. Increase in Software Complexity (new methods and techniques have to be developed) 2. Failure to use software Engineering methods 3. Lack of Software Engineering training, so employers should provide training resources on soft eng methods and techniques.

What are the umbrella activities and list them?

Software Engineering process framework activities are complemented by a number of umbrella activities. It helps a software team manage and control progress, quality, change and risk. The umbrella activities are 1. Software Project tracking and control 2. Risk Management 3. Software Quality assurance 4. Technical Reviews 5. Measurement 6. Software Configuration Management 7. Work Product preparation and production.

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance.

Define software

Software is a 1. instructions that when executed provide desired features, function, and performance. 2. data structures that enable the programs to adequately manipulate information 3. descriptive information in both hard copy and virtual forms that describes the operation and use of the programs.

What is Product Line Software?

Software product line is a set of software-intensive systems that share a common, managed set of features to satisfy the specific needs of a particular market. It is a line of products that are related, developed using the same underlying application and data architectures.

What is the difference between software engineering and system engineering?

System Engineering focuses on all aspects of computer-based system development including hardware, software and process engineering. Software Engineering is part of a more general process.

What is the Process Layer? tools methods process quality focus

The foundation of Software Engineering is the Process Layer. The Software Engineering process forms the basis for management control of software process and establishes the context in which technical methods are applied, work products (models, documents, data) are produced, milestones are established product quality is ensured, and change is properly managed.

What are the fundamental software engineering activities?

The fundamentals of Software Engineering activities are 1. Software Specification 2. Software Development 3. Software Validation 4. Software Evolution

What are the best software engineering techniques and methods?

While all software projects have to be professionally managed and developed different techniques and appropriate for different types of system. For example, games should always be developed using a series of prototype whereas safety critical control systems require a complete and analyzable specification to be developed. "There are no methods and techniques that are good for everything"

What is the bathtub curve? Failure curves for hardware

indicates that hardware exhibits relatively high failure rates early in its life; defects are corrected and failure rate drops to a steady-state level for some time. As time passes, software failure increase again as hardware components suffer from cumulative effect of dust, vibration, abuse, temperature extremes and many external maladies.


Conjuntos de estudio relacionados

Chapter 19: lifes origin and early evolution

View Set

Beaufort 6 - Contact 8 - les nouveaux mots

View Set

md 100 week 2 quiz and flash and games

View Set

Property and Casualty - Chapter 5 - Texas Statutes and Rules Common to All Lines

View Set

Literary Terms/Devices in Fighting Ruben Wolfe

View Set