Технология программирования
Информатика и вычислительная техника
  • формат pdf
  • размер 46.7 МБ
  • добавлен 03 января 2012 г.
Conger S. New Software Engineering
Издательство Springer, 2008, -830 pp.

As we move toward the 21st century, the techniques, tools, technologies, and subject matter of applications development are changing radically. Globalization of the work place is impacting IS development as well, by pressuring organizations to strive for competitive advantage through automation, among other methods. Strategic IS, reusable designs, downsizing, right-sizing, multimedia databases, and reusable code are all discussed in the same breath. Methodologies are being successfully coupled to computer-aided software engineering environments (CASE); yet object-oriented methodologies, which are being touted as the panacea for all problems, have not yet been fully automated . or even fully articulated. Few if any tools, methods or techniques address the needs of artificial intelligence and expert system development, which are currently driven by the program language being used for development. New technologies for true distribution of processing are maturing, and integration across hardware and software platforms is the major IS conce in multiple industries [Computerworld, 10/15/90].
IS professionals must be jacks-of-all-trades as never before, but there is also increased demand for domain experts who are intimately familiar with all aspects of a particular business area, such as money transfer in banking. It is difficult for anyone person to be both expert and generalist. But there are many systems developers-I call them software engineers- who do possess these attributes. Today's ideal software engineer is familiar with the alteatives, trade-offs and pitfalls of methodologies (notice the plural form), technologies, domains, project life cycles, techniques, tools, CASE environments, hardware, operating systems, databases, data architectures, methods for user involvement in application development, software, design trade-offs for the problem domain, and project personnel skills. Few professionals acquire all these skills without years of experience including both continuing education and variations in project assignments, company type, and problem type. This book attempts to discuss much of what should be the ideal software engineer's projectrelated knowledge and theoretical background in order to facilitate and speed the process by which
novices become experts.
The goal of this book, then, is to discuss project planning, project life cycles, methodologies, technologies, techniques, tools, languages, testing, ancillary technologies (e.g., database), and computer- aided software engineering (CASE). For each topic, alteatives, benefits and disadvantages are discussed.
For methodologies, one major problem is that most writing on methods of development concentrates on what the analyst does. It is up to the individual instructor and/or student to develop the how knowledge. Yet, the what knowledge is easy and takes very little time to lea. If I say, "The first step in object-oriented methodology is to make a list of objects," that sounds like a simple step. I may understand what I'm to do, but not how to do it. This book is intended to shed some light on the how information. One technique used to facilitate the leaing process is to develop the same case problem in each methodology, highlighting the similarities, differences, conceptual activities, decision processes, and physical representations. Another technique is to provide cases in the appendix that can be used throughout the text for many assignments, thus allowing the student to develop a detailed-problem understanding and an understanding of how the problem is expressed in different methodologies and using different techniques.
A related problem in software engineering texts is that little information is available on current research and future directions. Information systems development is a 30-year old activity that is beginning to show some signs of maturity, but is also constantly changing because the type of systems we automate is constantly changing. Research in every area of software development, from enterprise analysis through reengineering 20-year-old systems, is taking place at an unprecedented rate. Moreover, the landscape of system development will change radically in the next 20 years based on the research taking place today. This text attempts to highlight and synthesize current research to identify future directions.
Many software engineering texts never discuss problems attendant with methodologies. This text attempts to discuss methodologies in the context of their development and how they have evolved to keep pace with new knowledge about system development. Both useful and not-so-useful representation techniques will be identified. The book may be controversial in this regard, but at least the knowledge that there are problems with methods should remove some of the prevailing attitudes that there are right and wrong ways to complete everything. Unfortunately, no methodology is complete enough to guarantee the same results from two different analysts working independently, so interpretations differ. I try to identify my interpretations and generalizations throughout the text.
The book is case-oriented in several ways. First, a sample project is described, designed, and implemented using each of the techniques discussed. Second, cases for in-class development are provided. Third, cases for homework assignments are also provided. Research on leaing has revealed that we lea best through practice, analysis of examples, and more practice. For each topic, an example of both acceptable and unacceptable deliverables is provided, with discussion of the relative merits and demerits of each. Through repeated use of different cases, students will lea both the IS topics and something about problem domains that will carry over into their professional lives.
Finally, this text has a bias toward planning, analysis, and design activities even though the entire life cycle is discussed. This bias is partly due to practical and space limitations; however, it is also because of the realities of changing software engineering work. CASE promises to remove much of the programming from business application development by automating the code generation process. Although languages are discussed, the discussion focuses on how to choose the correct language for an application based on language characteristics, rather than on how to program in the language.
The audience for this text includes business, computer information systems, and computer science students. The courses for which this text is appropriate include software engineering, advanced system analysis, advanced topics in information systems, and IS project development. Computer software engineering is moving away from a concentration on developing the perfect program to a realization that even perfect programs never work in isolation. Program connections are significantly more important than individual program code. Thus, even computer scientists are recognizing a need for methodologies, techniques for system representation, and language selection.
The text was originally planned to accommodate either quarter or semester classes. I have taught this material in both. While the written material is longer than anticipated, I believe the book can be covered in one quarter because there are usually more contact hours with students. One of my goals was a book that did not require much additional outside material to supplement the text; I hope this goal was met. Much of the bulk is explaining the how processes in Chapters 7-12, and these should be covered in class to discuss alteatives, possible flaws in my thinking, and so on. If programming is also included in the course, I suggest development of a two-quarter (or semester) sequence that includes software engineering through system design in the first course and the remaining subjects in the second course.
Every school seems to offer courses on "Advanced Topics in Systems Development" or Advanced Systems Analysis" or "IS Development Project" that frequently use no book because nothing covers all the desired topics. This book attempts to provide for these courses. Advanced systems analysis and development courses all tend to concentrate on alteatives during the design process from which decisions must be made. The typical systems analysis course might discuss one technique for each major topic area: enterprise modeling, data modeling, process modeling, program design. That alteatives are available is certainly mentioned, but there is simply not enough time to teach all topics, nor are students able to assimilate much information about alteatives without becoming hopelessly confused. Advanced courses try to broaden the knowledge base of students with discussions of alteatives in each area. Even in these courses, without a hands-on orientation and concrete examples to use for reference, the number of topics and alteatives is necessarily limited. The use of a single case throughout the text, together with cases for home/school work practice, should broaden the number of topic areas that can be covered adequately in a one-semester course.

Overview of Software Engineering
Part I Preparation for Software Engineering
Leaing Application Development
Project Management
Data Gathering for Application Development
Part II Project Initiation
Organizational Reengineering and Enterprise Planning
Application Feasibility Analysis and Planning
Part III Analysis and Design
Process-Oriented Analysis
Process-Oriented Design
Data-Oriented Analysis
Data-Oriented Design
Object-Oriented Analysis
Object-Oriented Design
Summary and Future of Systems Analysis, Design, and Methodologies
Forgotten Activities
Part IV Implementation and Maintenance
Choosing an Implementation Language
Purchasing Hardware and Software
Testing andQuality Assurance
Change Management
Software Engineering as a Career
Cases for Assignments
Похожие разделы
Смотрите также

Agarwal B.B. Software engineering and testing

  • формат pdf
  • размер 11.62 МБ
  • добавлен 05 декабря 2010 г.
Jones and Bartlett Publishers, 2010. 516 р. Software Engineering and Testing. Introduction to Software Engineering. Software-Development Life-Cycle Models. Introduction to Software Requirements Specification. Software Reliability and Quality Assurance. System Design. Software Measurement and Metrics. Software Testing. Software-Testing Strategies. Software Maintenance and Project Management. Computer-Aided Software Engineering. Coding. Software De...

Dooley J. Software Development and Professional Practice

  • формат pdf
  • размер 6 МБ
  • добавлен 16 августа 2011 г.
Apress, 2011. - 242 p. Software Development and Professional Practice reveals how to design and code great software. What factors do you take into account? What makes a good design? What methods and processes are out there for designing software? Is designing small programs different than designing large ones? How can you tell a good design from a bad one? You'll learn the principles of good software design, and how to turn those principles back...

Endres A., Rombach D. A Handbook of Software and Systems Engineering

  • формат pdf
  • размер 10.31 МБ
  • добавлен 27 мая 2011 г.
The book is a collection of empirical laws, theories and observations, which were proved to be useful in Software Engineering. It sums up the experience gained during sfotware development in hundreds of projects. Table of Contents: Chapter 1: Introduction Chapter 2: Requirements definition, prototyping, and modeling Chapter 3: System design and specification Chapter 4: System construction and composition Chapter 5: Validation and static verifica...

Jalote P. An Integrated Approach to Software Engineering

  • формат pdf
  • размер 7.7 МБ
  • добавлен 10 ноября 2011 г.
Издательство Springer, 2005, -571 pp. Third Edition An introductory course in Software Engineering remains one of the hardest subjects to teach. Much of the difficulty stems from the fact that Software Engineering is a very wide field which includes a wide range of topics. Consequently, what should be the focus of an introductory course remains a challenge with many possible viewpoints. This third edition of the book approaches the problem from...

Kakola T., Duenas J. (Eds.) Software Product Lines. Research Issues in Engineering and Management

  • формат pdf
  • размер 11.24 МБ
  • добавлен 14 ноября 2011 г.
Издательство Springer, 2006. – 635 p. Software product line engineering is an industrially validated methodology for developing software products and software-intensive systems faster, at lower costs, and with better quality. It differs from single system development in two primary ways: 1. It needs two distinct development processes: domain engineering and application engineering. Domain engineering defines and realizes the commonality and varia...

Pankaj Jalote. A Concise Introduction to Software Engineering

  • формат pdf
  • размер 5.3 МБ
  • добавлен 27 мая 2011 г.
An introductory course on Software Engineering remains one of the hardest subjects to teach largely because of the wide range of topics the area encompasses. I have believed for some time that we often tend to teach too many concepts and topics in an introductory course resulting in shallow knowledge and little insight on application of these concepts. And Software Engineering is finally about application of concepts to efficiently engineer good...

Pressman R. Software Engineering: A Practitioner's Approach (5th edition)

  • формат pdf
  • размер 6.66 МБ
  • добавлен 05 декабря 2010 г.
Pressman's Software Engineering: A Practitioner's Approach is celebrating 20 years of excellence in the software engineering field. This comprehensive 5th edition provides excellent explanations of all the important topics in software engineering and enhances them with diagrams, examples, exercises, and references. In the fifth edition, a new design has been added to make the book more user friendly. Several chapters have been added including cha...

Sommerville I. Software Engineering (8th edition)

  • формат pdf
  • размер 41.33 МБ
  • добавлен 05 декабря 2010 г.
Sensible choice and organization of topics, made all the more authoritative by the author's credentials as a senior academic in the area Prof. David S. Rosenblum, University College London I find Somerville inviting and readable and with more appropriate content Julian Padget, University of Bath Sommerville takes case studies from radically different areas of SE. This avoids excessive stereotyping (hence blinkering), but permits some depth and de...

Sommerville I. Software Engineering (9th edition)

  • формат pdf
  • размер 13.89 МБ
  • добавлен 25 января 2012 г.
Hardcover: 792 pages Publisher: Addison Wesley; 9 edition (March 13, 2010) Language: English ISBN-10: 0137035152 ISBN-13: 978-0137035151 Intended for a sophomore/junior level course in software engineering. The ninth edition of Software Engineering presents a broad perspective of software engineering, focusing on the processes and techniques fundamental to the creation of reliable, software systems. Increased coverage of agile methods and softwar...

Tian J. Software Quality Engineering: Testing, Quality Assurance and Quantifiable Improvement

  • формат pdf
  • размер 24.36 МБ
  • добавлен 27 мая 2011 г.
Wiley-Interscience, 2005. - 440 p. - ISBN: 0471713457 The one resource needed to create reliable software This text offers a comprehensive and integrated approach to software quality engineering. By following the author's clear guidance, readers learn how to master the techniques to produce high-quality, reliable software, regardless of the software system's level of complexity. The first part of the publication introduces major topics in softwa...