Premium Essay

Software Engineering

In:

Submitted By ruthnice
Words 24348
Pages 98
2011 download.benjaminsommer.com Benjamin Sommer

[SOFTWARE ENGINEERING LECTURE NOTES]
Brief and detailed notes from lectures held at the Ludwig-Maximilian-University, Faculty of Computer Science in Germany. This document neither claims completeness, nor correctness of the presented topic. Please let me know in case of errors or missing information: contact.benjaminsommer.com

[SOFTWARE ENGINEERING LECTURE NOTES] October 21, 2011
OVERVIEW SOFTWARE PROCESSES SOFTWARE PROCESS MODELS PROCESS ACTIVITIES COPING WITH CHANGE THE RATIONAL UNIFIED PROCESS AGILE SOFTWARE DEVELOPMENT AGILE METHODS PLAN-DRIVEN AND AGILE DEVELOPMENT EXTREME PROGRAMMING AGILE PROJECT MANAGEMENT SCALING AGILE METHODS REQUIREMENTS ENGINEERING FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS THE SOFTWARE REQUIREMENTS DOCUMENT REQUIREMENTS SPECIFICATION REQUIREMENTS ENGINEERING PROCESSES REQUIREMENTS ELICITATION AND ANALYSIS REQUIREMENTS VALIDATION REQUIREMENTS MANAGEMENT SYSTEM MODELING CONTEXT MODELS INTERACTION MODELS STRUCTURAL MODELS BEHAVIORAL MODELS MODEL-DRIVEN ENGINEERING ARCHITECTURAL DESIGN ARCHITECTURAL DESIGN DECISIONS ARCHITECTURAL VIEWS ARCHITECTURAL PATTERNS APPLICATION ARCHITECTURES DESIGN AND IMPLEMENTATION OBJECT-ORIENTED DESIGN USING THE UML DESIGN PATTERNS IMPLEMENTATION ISSUES OPEN SOURCE DEVELOPMENT SOFTWARE TESTING DEVELOPMENT TESTING TEST-DRIVEN DEVELOPMENT RELEASE TESTING download.benjaminsommer.com | 1 3 5 5 7 10 13 16 16 17 17 19 20 21 21 23 24 25 26 29 30 31 32 32 33 34 35 37 38 39 39 42 44 45 47 48 50 51 52 56 57

October 21, 2011 USER TESTING SOFTWARE EVOLUTION EVOLUTION PROCESSES PROGRAM EVOLUTION DYNAMICS SOFTWARE MAINTENANCE LEGACY SYSTEM MANAGEMENT DEPENDABILITY AND SECURITY

[SOFTWARE ENGINEERING LECTURE NOTES]
58 59 60 61 62 65 67 67 68 70 71 72 73 74 74 75 76 77 77 77 78 80 81 82 83 83

SOCIOTECHNICAL SYSTEM COMPLEX SYSTEMS SYSTEMS ENGINEERING SYSTEM

Similar Documents

Premium Essay

Software Engineering

...Dimitar  Chukaliev     Software  Engineering   October  26,  2013   Homework  assignment  5     (∀x  (∀y  winner(y)  -­‐>  loves(x,  y)))   (∀x  (∃y  winner(y)  ∧  loves(x,  y)))     (∃y  winner(y)  ∧  (∀x  loves(x,  y)))   For  each  of  them,  provide  a  simple  model  (composed  of  a  small  set  of  individuals)   such  that  the  formula  is  satisfied  by  the  model,  but  none  of  the  other  two  formulae  is   satisfied  by  the  model.         Dimitar  Chukaliev     Exercise  2   You  are  doing  requirements  engineering  for  a  dishwasher.  The  main  goal  expressed   by  the  users  is  that  the  water  should  not  be  leaking  from  the  dishwasher.  The  valve   that  enables  the  flow  of  water  in  the  dishwasher  can  only  be  open  if  the  door  is   closed  and  a  washing  program  is  selected.  A  possible  (drastic)  solution  to  avoid   water  leakage  is  to  forbid  opening  the  door  after  the  valve  has  been  open,  until  the   washing  program  terminates  and  the  valve  is  closed.   Can  you  identify  in  this  description  the  system  requirements,  the  software   requirements,  and ...

Words: 268 - Pages: 2

Premium Essay

Software Engineering

...Software Engineering 1.) What does the term requirement mean? Explain the process of determining the requirement for a software system.  ‘Requirements’ suggests that there is someone out there doing the ‘requiring’ – a specific customer who knows what she wants. In some projects, requirements are understood to be the list of features (or functions, properties, constraints, etc.) Demanded by the customer. In practice, there is rarely a single customer, but rather a diverse set of people who will be affected in one way or another by the system. These people may have varied and conflicting goals. Their goals may not be explicit, or may be hard to articulate. They may not know what they want or what is possible. Under these circumstances, asking them what they ‘require’ is not likely to be fruitful. 2.) Describe the various steps of requirement engineering? Is it essential to follow these steps?  Requirements engineering is an important aspect of any software project, and is a general term used to encompass all the activities related to requirements. The four specific steps in software requirements engineering are: • Requirements elicitation is the practice of obtaining the requirements of a system from users, customers and other stakeholders. • Requirements analysis encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various...

Words: 1772 - Pages: 8

Premium Essay

Software Engineering

...Chapter 1: Why Software Engineering? Learning objectives: After studying this chapter, you should be able to: · Define what is meant by software engineering and describe the differences between computer science and software engineering. · Understand the track record of software engineering. · Identify the characteristics of “good software”. · Define what is meant by a systems approach to building software and understand why a systems approach is important. · Describe how software engineering has changed since the 1970s. Summary: This chapter addresses the track record of software engineering, motivating the reader and highlighting key issues that are examined in later chapters. In particular, the chapter uses Wasserman's key factors to help define software engineering. The chapter also describes the differences between computer science and software engineering and explains some of the major types of problems that can be encountered. The chapter explores the need to take a systems approach to building software. The main emphasis of this chapter is to lay the groundwork for the rest of the book. Software engineers use their knowledge of computers and computing to help solve problems. For problem-solving, software engineering makes use of analysis and synthesis. Software engineers begin investigating a problem by analyzing it, breaking it into pieces that are easier to deal with and understand. Once a problem is analyzed, a solution is synthesized based...

Words: 1130 - Pages: 5

Premium Essay

Software Engineering

...A software engineer is a professional who is skilled in various fields when it comes to software development like analyzing software requirements, handling and modification of software design to make it better in quality, price and running speed. Basically, a software engineer analyzes how a piece of software can be improved and decides how that can be improved. In this process he may or may not write a lot of computer code. Either way he must be familiar with different code languages so that he has an ability to review different kinds of software. A software engineer often work as a part of team to deal with design, planning and testing of software so that the end result would be in developing required functioning software. When working with a client, a software engineer will typically evaluate the client's needs, then design, develop and test computer software in order to meet those needs. During this process they create the detailed sets of instructions, called algorithms that tell the computer what to do. Software engineers are often more concerned with developing algorithms and analyzing and solving programming problems than with actually writing code. A software engineer need not just be a developer. Many software engineers work for Multi-nationals. They are required in the fields of applied mathematics, science, research and development (government organizations), teaching professionals in the field of study. Now-a-days various software engineers decide to work as...

Words: 1770 - Pages: 8

Premium Essay

Software Engineering

...Introduction Software engineering involves the methodical and disciplined approach to developing software products (Lehman, n.d.). Software Engineering develops and maintains reliable software systems that exhibit several features. Such features include; affordability, completeness, scalability, portability, integration, and dependability. The interpretation is that such systems must satisfy all user requirements as defined by the users. Such characteristics are important in meeting the organization’s objectives. The result of software engineering, therefore, is an efficient and reliable software system. The precise definition of functional and non-functional requirements forms one of the main sections in the software development lifecycle that presents a challenge to developers. Definition of such requirements is essential for meeting both business and system performance objectives. Software requirements detail the main functions that the system must aim to fulfill. They represent the user’s expectations of the real-world system features (Mishra and Mohanty, 2012). Usability is the main feature of any software system under development that demonstrates the system as understandable and usable to the users under specified conditions. Challenges encountered in the different phases of the software development cycle, if not properly managed, may lead to poor usability in software systems a feature that significantly contributes to software failure. Types of Requirements in Software development ...

Words: 1074 - Pages: 5

Premium Essay

Software Engineering

...& Careers » Software Engineering. Retrieved February 23, 2014, from http://computingcareers.acm.org/?page_id=12. Web This article discusses software engineering and the definition of basically what it is, it states that it is concerned with maintaining software systems and developing one that will work correctly and be very dependable for the user, they have to keep in mind as well that there projects need to be affordable and that they assure reliability and they meet all the users needs. The actual article states, “Software engineering (SE) is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them.” (computer machinery) The article talks about how critical it is for the application to be safe especially because of how expensive the software system are. Software Engineering integrates a significance of mathematics in computer science and practices the origins of engineering. This article give a good definition of what software engineering is about, it doesn’t give enough detail on what exactly they are doing everyday its very broad and doesn’t narrow it down. It begins to talk more about how to get into the job itself, instead of focusing on exactly what they do, it gives a description of all the step you need to take to get there. It strays away from what you’re actually doing when you become a software engineer. Furthermore...

Words: 1601 - Pages: 7

Free Essay

Software Engineering for Computer Games

...LITERATURE REVIEW ON SOFTWARE ENGINEERING FOR COMPUTER GAMES Name: Course: Date Page 1 Abstract Games have often been very common in the past period of time, but with the discovery of computer games, they have penetrated. In spite of the third vista to computer games which is verifiable, it pertains to investigating what characteristics those who play such games anticipate from the gaming using the computer. Permit us state the meaning of a computer game as a play which is undertaken with an aid of a computer program. This meaning still leaves behind some flexibility because it does not imply that the whole game happens in the computer. For instance, Chess may be played on the computer screen and on a true-globe board, heedless to whether the one who objects to the play is a computer application. Huizinga in his classic work defined play as ``an activity which proceeds within certain limits of time and space, in a visible order, according to rules freely accepted, and outside the sphere of necessity or material utility. The play mood is one of rapture and enthusiasm, and is sacred or festive in accordance with the occasion. A feeling of exaltation and tension accompanies the action, mirth and relaxation follow``. A lexicon likewise states the meaning of game as `‘a universal form of recreation generally including any activity engaged in for diversion or amusement and often establishing a situation that involves a contest or rivalry’`. Besides, Elliot...

Words: 8674 - Pages: 35

Premium Essay

Software Engineering References

...SOFTWARE ENGINEERING RESEARCH METHODS – RES531 Journals and Monographs in Software Engineering NASA Monographs in System Engineering is a reference that will assist in becoming familiar with the current technologies and ground breaking research. In dealing with projects, NASA places emphasis on relevance to its mission. The Practical Accelerated Life Testing monograph assists in the delineation of key steps and guidelines used in order to set up and administrate accelerated life tests. It also discusses the commonly used methods of testing data. The journal shows key perimeters to model, sample size decisions, and examples of analysis of difficult results. Develop Reliable Software at Low Cycle Cost gives strategies and tactics for improvement of the software engineering process. It also gives reference to how to develop trustworthy code and reliable testing throughout the life cycle. The designing aspect of the database will use the Design for Reliability journal to be sure that methods we employ are effectively ensuring that high reliability goals are reached. This journal speaks about the integration of reliable improvement practices and methods which are similar to the project design rules. The ISRN peer-reviewed journal is widely used throughout the Software Engineering world. It will be used as a source of test procedures and error controls. It covers the productivity factors, cost models, issues in scheduling, and the interrelationships between hardware-software...

Words: 340 - Pages: 2

Premium Essay

Software Engineering

...Introduction to Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University Email: sk@nontri.ku.ac.th URL: http://www.cpe.ku.ac.th/~sk Somnuk Keretho/Kasetsart University Outline of this presentation • • • • • • Scope of Software Engineering Object-Oriented Software Development Software Process Software Life-Cycle Models Object Orientation Software Quality Assessment Reference to Chapter 1/2/3 of “Software Engineering with JAVA”, S.R. Schach, McGraw-Hill, 1997. Somnuk Keretho/Kasetsart University 2 Scope of Software Engineering • Software engineering is a discipline whose aim is the production of fault-free software, that is delivered on time, within budget, and satisfies the user’s needs. Somnuk Keretho/Kasetsart University 3 Scope of Software Engineering • Historical Aspects: – 1967, a NATO group coined the term “Software Engineering” – 1968 NATO Software Engineering Conference concurred that “Software production should be an engineering-like activity”. – Using philosophies and paradigms of established engineering disciplines to solve “Software Crisis: that the quality of software was generally unacceptably low and that deadlines and cost limits were not being met”. Somnuk Keretho/Kasetsart University 4 Scope of Software Engineering • Economic Aspects – Software Engineering v.s. Computer Science • The computer scientist investigates...

Words: 1590 - Pages: 7

Premium Essay

Software Engineering (Chapter 1 Summ.)

...Inadequate software engineering has led to failure of modern softwares. Causes of software failures ---------- 1. increasing demand: software developers are tasked to develop softwares that solve more complex solutions and are often given short time. the existing software engineering techniques are therefore not able to cater for this complexity. 2. low expectation: most software developers develop softwares without using software engineering techniques which often cause software failures and unreliable softwares Attributes of a good software:(M.A.D.E) Maintainability: it should be able to evolve in order to fit new needs or suit new customers Acceptability: it must meet the need for which it was developed for and must be usable for its users Dependability and Security: it must not cause physical damage or be open to malicious attackers for exploits Efficiency: it must not waste system resources like memory, disk space, e.t.c Others are D.R.I.P Distributability,Reusability,Interoperatability,Portability software engineering is an aspect of engineering discipline that focuses on all the aspect of software development production Fundamental software engineering activities DEVS: software development, software evolution, software validation, software specification Difference between software engineering and computer science: computer science focuses on the theories and fundamentals of software development...

Words: 334 - Pages: 2

Premium Essay

Problems of Software Engineering

...Aneshia Price English 1101 Paper 3 Draft 2 Problems of Software Engineering The world of software engineering is a dynamic one. There are many benefits of the field including high rate of pay and wide availability of jobs. However, there is always a downside of everything great. Besides the years of rigorous training, there are problems once you enter the field. If you ever need to change jobs, it will be difficult due to the amount of competition (Enriquez). You also have to constantly keep up with changing technology, if you do not keep up the pace, you can easily be replaced. Also, it is a major challenge to just secure a job with a major company like Google. The hiring process is not like a “regular” job. To get a good job in this field, you must be the best of the best and be able to maintain that status to keep your job. There is also an incredible amount of stress related to this job. While it may seem like a cozy inside job, there are many stressor within the software engineering career. The major issue with becoming a software engineer resides in the reason that also makes the field such a successful one. While jobs are plentiful in the field due to changing technology, this also makes it very easy to lose your job. There is always someone waiting to take your place, and since many software engineering jobs allow you to work from home, you have to deal with international competition. Companies are always looking for someone to do the job for less and, “[a]lmost...

Words: 1297 - Pages: 6

Premium Essay

Introduction to Software Engineering

...INTRODUCTION TO SOFTWARE ENGINEERING Have you ever noticed how the invention of one technology can have profound and unexpected effects on other seemingly unrelated technologies, on commercial enterprises, on people and even on culture as a whole? This phenomenon often called:- “THE LAW OF UNINTENDED CONSEQUENCES”. Today, computer software is the single most important technology on the world stage, and software is also a prime example of the “Law of Unintended Consequences”. No one could have foreseen that over the past 50 years, software become embedded in system of all kinds. i.e. Banking, Medical, Transportation, Entertainment and so on. And if we believe in the Law of Unintended Consequences, there are many more effects that we can not yet predict! As software’s importance has grown, the software community has continually attempted to develop technologies that will make it easier, faster and less expensive to build and maintain high quality computer programs. Some of the Software technologies are targeted at a Specific Application Domain (e.g. Web site design and implementation). Others focus on a Technology Domain (e.g. O.O System and programming) and still these are Broad-based software Applications domain (e.g. Operating Systems such as Linux), However we have yet to develop a Software technology that targeted to all the likelihood of one arising in the future is small. WHAT IS COMPUTER SOFTWARE? Computer Software is the product that Software professionals...

Words: 2757 - Pages: 12

Free Essay

Software Engineering

...interface design or user interface engineering is the design of computers, appliances, machines, mobile communication devices, software applications, and websites with the focus on theuser's experience and interaction. The goal of user interface design is to make the user's interaction as simple and efficient as possible, in terms of accomplishing user goals—what is often called user-centered design. Good user interface design facilitates finishing the task at hand without drawing unnecessary attention to itself. Graphic design may be utilized to support its usability. The design process must balance technical functionality and visual elements (e.g., mental model) to create a system that is not only operational but also usable and adaptable to changing user needs. OBJECTIVES: The main objectives of user interface design are: * To suggest some general design principles for user interface design * To explain different interaction styles and their use * To explain when to use graphical and textual information presentation * To explain the principal activities in the user interface design process (interaction activities) * To introduce usability attributes and approaches to system evaluation USER INTERFACE: * System users often judge a system by its interface rather than its functionality * A poorly designed interface can cause a user to make catastrophic errors * Poor user interface design is the reason why so many software systems are never used *...

Words: 1712 - Pages: 7

Premium Essay

Artificial Intelligence and Software Engineering: Status and Future Trends

...Artificial Intelligence and Software Engineering: Status and Future Trends Jörg Rech, Klaus-Dieter Althoff The disciplines of Artificial Intelligence and Software Engineering have many commonalities. Both deal with modeling real world objects from the real world like business processes, expert knowledge, or process models. This article gives a short overview about these disciplines and describes some current research topics against the background of common points of contact. 1 Introduction During the last decades the disciplines of Artificial Intelligence (AI) and Software Engineering (SE) have developed separately without much exchange of research results. In AI we researched techniques for the computations that made it possible to perceive, reason, and act. Research in SE was concerned with supporting human beings to develop better software faster. Today, several research directions of both disciplines come closer together and are beginning to build new research areas. Software Agents play an important role as research objects in Distributed AI (DAI) as well as in agentoriented software engineering (AOSE). Knowledge-Based Systems (KBS) are being investigated for learning software organizations (LSO) as well as knowledge engineering. Ambient Intelligence (AmI) is a new research area for distributed, non-intrusive, and intelligent software systems both from the direction of how to build these systems as well as how to design the collaboration between ambient systems. Last...

Words: 6393 - Pages: 26

Premium Essay

Software Engineering Advantages

...1.3 SOFTWARE ENGINEERING DIVERSITY Software engineering takes into account the practical cost, dependability issues, schedule, customers and stakeholder’s needs or expectations (Sommerville, 2016:24). Methods, tools and techniques used to develop software depends on the vendor or organisation developing the software, type of software to be developed and people involved in the development process. The best practice to determine the most suitable software engineering methods, tools and techniques, is to understand the type of application being developed. The following are types of applications: a) Stand-alone applications - these are application systems which operate on a desktop or personal computers or mobile devices. In other words, they...

Words: 1078 - Pages: 5