Computer system reliability and nuclear war
Communications of the ACM
Relating software requirements to software design
ACM SIGSOFT Software Engineering Notes
Spreadsheet programs in software engineering
ACM SIGSOFT Software Engineering Notes
Survey in software development
ACM SIGSOFT Software Engineering Notes
A knowledge-based manager for software engineering projects
IEA/AIE '88 Proceedings of the 1st international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 1
A structured approach to program optimization
IEEE Transactions on Software Engineering
A unifying model for consistent distributed software development environments
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
CATS: computer aided testing of software
APL '91 Proceedings of the international conference on APL '91
Object-oriented analysis for telecommunications services
SAC '92 Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing: technological challenges of the 1990's
Parallel multiplication: a case study in parallel programming
ACM SIGPLAN Notices
A reusability-based software development environment
ACM SIGSOFT Software Engineering Notes
Conceptual modelling in the hypermedia development process
SIGCPR '94 Proceedings of the 1994 computer personnel research conference on Reinventing IS : managing information technology in changing organizations: managing information technology in changing organizations
Introducing undergraduates to object orientation using the Turing language
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
Object oriented methods using Fortran 90
ACM SIGPLAN Fortran Forum
Using CASE to get to maintenance
ACM SIGCSE Bulletin
Applying design methodology to software development
Proceedings of the 1st conference on Designing interactive systems: processes, practices, methods, & techniques
ACM SIGSOFT Software Engineering Notes
How to identify binary relations for domain models
Proceedings of the 18th international conference on Software engineering
On the Expected Number of Failures Detected by Subdomain Testing and Random Testing
IEEE Transactions on Software Engineering
Automated analysis of requirement specifications
ICSE '97 Proceedings of the 19th international conference on Software engineering
A model of a microprogrammed functional-oriented computing unit
MICRO 23 Proceedings of the 23rd annual workshop and symposium on Microprogramming and microarchitecture
Hardware/software codesign: a perspective
ICSE '91 Proceedings of the 13th international conference on Software engineering
Holistic design of a programming system
ACM SIGSOFT Software Engineering Notes
A “call for answers” around the proposition of an HCI-enriched model
ACM SIGSOFT Software Engineering Notes
Software engineering for seniors—overcoming the administrative fears
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
An execution-based retrieval of object-oriented components
ACM-SE 37 Proceedings of the 37th annual Southeast regional conference (CD-ROM)
Language assessment criteria for discrete simulation
WSC '86 Proceedings of the 18th conference on Winter simulation
Light analysis of complex systems
SAC '98 Proceedings of the 1998 ACM symposium on Applied Computing
Software engineering: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Requirements engineering for product families
Proceedings of the 22nd international conference on Software engineering
WCML: paving the way for reuse in object-oriented Web engineering
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Maintenance of KBS's by domain experts: the holy grail in practice
IEA/AIE '00 Proceedings of the 13th international conference on Industrial and engineering applications of artificial intelligence and expert systems: Intelligent problem solving: methodologies and approaches
Software engineering services for export and small developing economies
Information Technology for Development
Maintenance support tools for JAVA programs: CCFinder and JAAT
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
ACM Transactions on Computer Systems (TOCS)
Augmenting descriptive scenario analysis for improvements in human reliability design
Proceedings of the 2002 ACM symposium on Applied computing
Investigating software measures to improve product reliability
Proceedings of the 2002 ACM symposium on Applied computing
Learning processes in software engineering projects
Proceedings of the 7th annual conference on Innovation and technology in computer science education
Formal methods for distributed processing
A component-based visual environment development process
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Quantitative analysys for telecom/datacom software architecture
WOSP '02 Proceedings of the 3rd international workshop on Software and performance
Secure systems development based on the common criteria: the PalME project
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Tools for producing formal specifications: a view of current architectures and future directions
Annals of Software Engineering
Transformations to Restructure and Re–engineer COBOL Programs
Automated Software Engineering
Developing Educational Software: a Professional Tool Perspective
Education and Information Technologies
The Usability Problem Taxonomy: A Framework for Classificationand Analysis
Empirical Software Engineering
Evaluating the CMM Level 3 KPA of Intergroup Coordination: A theory-based approach
Information Technology and Management
A Generalized Structural Model of Structured Programs for Software Metrics Definition
Software Quality Control
Challenges of component-based development
Journal of Systems and Software
Secure systems development based on the common criteria: the PalME project
ACM SIGSOFT Software Engineering Notes
From active to passive progress in testing internet routing protocols
Journal of Computer Science and Technology
A Formal Framework for Viewpoint Consistency
Formal Methods in System Design
Making a Compiler Easily Portable
IEEE Software
Formal Methods: Promises and Problems
IEEE Software
An Empirical Study of Testing and Integration Strategies Using Artificial Software Systems
IEEE Transactions on Software Engineering
Verification and validation of the SACHEM Conceptual model
International Journal of Human-Computer Studies
Software development method tailoring at Motorola
Communications of the ACM - Digital rights management
Web Engineering: Beyond CS, IS and SE Evolutionary and Non-engineering Perspectives
Web Engineering, Software Engineering and Web Application Development
Formal Methods: The Problem Is Education
SAFECOMP '00 Proceedings of the 19th International Conference on Computer Safety, Reliability and Security
Conceptual Predesign - Bridging the Gap between Requirements and Conceptual Design
ICRE '98 Proceedings of the 3rd International Conference on Requirements Engineering: Putting Requirements Engineering to Practice
The Role of Connectivity in Supporting Context-Sensitive Applications
HUC '99 Proceedings of the 1st international symposium on Handheld and Ubiquitous Computing
Systems engineering for business process change
The reflective practitioner perspective in software engineering education
Journal of Systems and Software
Knowledge management in the sociotechnical world
Nice class diagrams admit good design?
Proceedings of the 2003 ACM symposium on Software visualization
New directions on agile methods: a comparative analysis
Proceedings of the 25th International Conference on Software Engineering
Supporting maintenance of legacy software with data mining techniques
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
An integrated software environment for localization
ICCC '02 Proceedings of the 15th international conference on Computer communication
A controlled experiment on inheritance depth as a cost factor for code maintenance
Journal of Systems and Software
Information systems as social systems
Critical reflections on information systems
A Report on Computer-Aided Software Engineering (CASE)
Journal of Computing Sciences in Colleges
On the economic evaluation of XP projects
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the Latin American conference on Human-computer interaction
Multiple implementations for component based software using Java interfaces
Journal of Computing Sciences in Colleges
Dealing with different time scales in formal specifications
IWSSD '91 Proceedings of the 6th international workshop on Software specification and design
Designing electronic reference documentation for software component libraries
Journal of Systems and Software
Some implementation challenges of knowledge management systems: a CRM case study
Knowledge management
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
Formal specifications design, evolution and reuse
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Puzzles in software development contracting
Communications of the ACM - Information cities
Modeling sociotechnical specifics using architectural concepts
Proceedings of the 2004 ACM symposium on Applied computing
Building large-scale Bayesian networks
The Knowledge Engineering Review
Foundations of Multi-Agent Systems: Techniques, Tools and Theory
The Knowledge Engineering Review
Reliable and accountable system design
The Knowledge Engineering Review
Professional work and its impact on development of information and communication technology
Proceedings of the 2004 SIGMIS conference on Computer personnel research: Careers, culture, and ethics in a networked environment
Logic programming in the context of multiparadigm programming: the Oz experience
Theory and Practice of Logic Programming
Metadata management: past, present and future
Decision Support Systems
A Methodology for Constructing Maintainability Model of Object-Oriented Design
QSIC '04 Proceedings of the Quality Software, Fourth International Conference
Designing a VR interaction authoring tool using constructivist practices
AFRIGRAPH '04 Proceedings of the 3rd international conference on Computer graphics, virtual reality, visualisation and interaction in Africa
The cognitive model: an approach to designing the human-computer interface
ACM SIGCHI Bulletin
Integrating formalism into undergraduate software engineering
Journal of Systems and Software - Special issue: The new context for software engineering education and training
Class Point: An Approach for the Size Estimation of Object-Oriented Systems
IEEE Transactions on Software Engineering
Requirements Engineering and Downstream Software Development: Findings from a Case Study
Empirical Software Engineering
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Sensitivity analysis of fuzzy and neural network models
ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes
Usability of Rational Rose and Visio in a software engineering course
ACM SIGCSE Bulletin
PLFaultCAT: A Product-Line Software Fault Tree Analysis Tool
Automated Software Engineering
Current issues in software engineering for Natural Language Processing
SEALTS '03 Proceedings of the HLT-NAACL 2003 workshop on Software engineering and architecture of language technology systems - Volume 8
Storytelling and puzzles in a software engineering course
Proceedings of the 37th SIGCSE technical symposium on Computer science education
The inverted functional matrix: a new approach to project intensive software engineering courses
ACM-SE 33 Proceedings of the 33rd annual on Southeast regional conference
Journal of Information Science
Automated testing of stochastic systems: a statistically grounded approach
Proceedings of the 2006 international symposium on Software testing and analysis
Subjective evaluation of software evolvability using code smells: An empirical study
Empirical Software Engineering
Graphic designers who program as informal computer science learners
Proceedings of the second international workshop on Computing education research
Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system
SIGDOC '06 Proceedings of the 24th annual ACM international conference on Design of communication
An improved methodology on information distillation by mining program source code
Data & Knowledge Engineering
Assessing important factors that support component-based development in developing countries
Information Technology for Development
Science of Computer Programming
Journal of Integrated Design & Process Science
Editorial: For the Special issue on Qualitative Software Engineering Research
Information and Software Technology
Practical knowledge and its importance for software product quality
Information and Software Technology
Information and Software Technology
Using common off-the-shelf tools to implement dynamic aspects
ACM SIGPLAN Notices
ECSCW'99 Proceedings of the sixth conference on European Conference on Computer Supported Cooperative Work
A controlled empirical evaluation of a requirements abstraction model
Information and Software Technology
Model Checking Safety-Critical Systems Using Safecharts
IEEE Transactions on Computers
Hasty design, futile patching and the elaboration of rigor
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Fuzzy prototype model and semantic distance
Information Systems
Field Experiences with eXtreme Programming: Developing an Emergency Response System
Journal of Management Information Systems
On the quality of resources on the Web: An information retrieval perspective
Information Sciences: an International Journal
Three Paradigms of Computer Science
Minds and Machines
Metatheory of actions: Beyond consistency
Artificial Intelligence
WCET free time analysis of hard real-time systems on multiprocessors: A regular language-based model
Theoretical Computer Science
Proceedings of the 39th conference on Winter simulation: 40 years! The best is yet to come
A new paradigm for programming competitions
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Towards software requirements extraction using natural language approach
SEPADS'07 Proceedings of the 6th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems
A knowledge hierarchy model for adaptive multi-agent systems
International Journal of Computer Applications in Technology
Strategy-focused requirements engineering method for web applications
International Journal of Web Engineering and Technology
Scenario-based usability engineering techniques in agile development processes
CHI '08 Extended Abstracts on Human Factors in Computing Systems
Online support for arbitration: designing software for a flexible business process
International Journal of Information Technology and Management
Houston, we have a problem...: a survey of actual problems in computer games development
Proceedings of the 2008 ACM symposium on Applied computing
Aligning the economic modeling of software reuse with reuse practices
Information and Software Technology
A modified genetic algorithm for software clustering problem
AIC'06 Proceedings of the 6th WSEAS International Conference on Applied Informatics and Communications
Towards a Graphical Tool for Refining User to System Requirements
Electronic Notes in Theoretical Computer Science (ENTCS)
Cooperation between developers and operations in software engineering projects
Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering
Study of social, ethical and human-computer interaction aspects of the MEDARIST II system
AIC'04 Proceedings of the 4th WSEAS International Conference on Applied Informatics and Communications
Integrating The Concept Of Synthesis In The Software Architecture Design Process
Journal of Integrated Design & Process Science
Do secure information system design methods provide adequate modeling support?
Information and Software Technology
Towards active conceptual modelling for sudden events
ER '07 Tutorials, posters, panels and industrial contributions at the 26th international conference on Conceptual modeling - Volume 83
A learner-centred design of a location-aware learning reminder
International Journal of Mobile Learning and Organisation
Time-line based model for software project scheduling with genetic algorithms
Information and Software Technology
Improving software projects course work by enhanced management
SEPADS'08 Proceedings of the 7th WSEAS International Conference on Software Engineering, Parallel and Distributed Systems
Small group design meetings: an analysis of collaboration
Human-Computer Interaction
A constraint-based system for product design and manufacturing
Robotics and Computer-Integrated Manufacturing
Enhancing software projects course work by advanced management
WSEAS Transactions on Information Science and Applications
Investigating the relationship between schedules and knowledge transfer in software testing
Information and Software Technology
Algorithms for locating GPS coordinates on PDA
WSEAS TRANSACTIONS on COMMUNICATIONS
WEB-PerformCharts: a collaborative web-based tool for test case generation from statecharts
Proceedings of the 10th International Conference on Information Integration and Web-based Applications & Services
Software productivity measurement
AFIPS '83 Proceedings of the May 16-19, 1983, national computer conference
Learning from achievement: scaffolding student projects in software engineering
International Journal of Networking and Virtual Organisations
Domain-driven discovery of stable abstractions for pointcut interfaces
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Tool-supported requirements prioritization: Comparing the AHP and CBRank methods
Information and Software Technology
The emergence of object-oriented technology: the role of community
Behaviour & Information Technology
Athena: A collaborative approach to requirements elicitation
Computers in Industry
Pattern Repositories for Software Engineering Education
Proceedings of the 2007 conference on Databases and Information Systems IV: Selected Papers from the Seventh International Baltic Conference DB&IS'2006
Early development of graphical user interface (GUI) in agile methodologies
Journal of Computational Methods in Sciences and Engineering
Deriving objects from use cases in real-time embedded systems
Information and Software Technology
A process model for managing requirement change
ACST '08 Proceedings of the Fourth IASTED International Conference on Advances in Computer Science and Technology
Towards an emergence-driven software process for agent-based simulation
MABS'02 Proceedings of the 3rd international conference on Multi-agent-based simulation II
The graphical format of TTCN-3 in the context of MSC and UML
SAM'02 Proceedings of the 3rd international conference on Telecommunications and beyond: the broader applicability of SDL and MSC
Determinants of software quality: A survey of information systems project managers
Information and Software Technology
AI and software engineering: managing exploratory programming
AAAI'90 Proceedings of the eighth National conference on Artificial intelligence - Volume 2
Requirements determination in a community informatics project: an activity theory approach
OTM'06 Proceedings of the 2006 international conference on On the Move to Meaningful Internet Systems: AWeSOMe, CAMS, COMINF, IS, KSinBIT, MIOS-CIAO, MONET - Volume Part I
Quality makes the information market
ODBASE'06/OTM'06 Proceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part I
IW-FM'97 Proceedings of the 1st Irish conference on Formal Methods
Artificial Intelligence in Medicine
Rapid prototyping of new telecommunications services: a procedural approach
Computer Communications
Making the leap to a software platform strategy: Issues and challenges
Information and Software Technology
A Methodology For Constructing Logic Programs
Fundamenta Informaticae
Hi-index | 0.02 |
From the Book:Preface: Software systems are now ubiquitous. Virtually all electrical equipment now includes some kind of software; software is used to help run manufacturing industry, schools and universities, health care, finance and government; many people now use software of different kinds for entertainment and education. The specification, development, management and evolution of these software systems make up the discipline of software engineering. Even simple software systems have a high inherent complexity so engineering principles have to be used in their development. Software engineering is therefore an engineering discipline where software engineers use methods and theory from computer science and apply this cost-effectively to solve difficult problems. These difficult problems have meant that many software development projects have not been successful. However, most modern software provides good service to its users; we should not let high-profile failures obscure the real successes of software engineers over the past 30 years. Books inevitably reflect the opinions and prejudices of their authors. Some readers will inevitably disagree with my opinions and with the choice of material which I include. Such disagreement is a healthy reflection of the diversity of the discipline and is essential for its evolution. Nevertheless, I hope that all software engineers and software engineering students can find something of interest here. Although the book is intended as a general introduction to software engineering, it is biased, to some extent, towards my own interests in system requirements engineering and critical systems. I think these areparticularlyimportant for software engineering in the 21st century where the challenge we face is to ensure that our software meets the real needs of its users without causing damage to them or to the environment. I dislike zealots of any kind, whether they are academics preaching the benefits of formal methods or salesmen trying to convince me that some tool or method is the answer to software development problems. There are no simple solutions to the problems of software engineering and we need a wide spectrum of tools and techniques to solve software engineering problems. I therefore don't describe commercial design methods or CASE systems but paint a broad picture of software engineering methods and tools. Software engineering research has made tremendous strides over the past 15 years but there has been a relatively slow diffusion of this research into industrial practice. The principal challenge which we now face is not the development of new techniques and methods but the transfer of advanced software engineering research into everyday use. I see this book as a contributor to this process. I therefore discuss some techniques, such as viewpoints for requirements engineering, which are reasonably well developed but which are not yet widely used in industry. Finally, it is impossible to over-emphasize the importance of people in the software engineering process. People specify, design and implement systems which help other people with their work. Most of the difficulties of very large system engineering are not technical problems but are the problems of managing large numbers of people with diverse priorities, abilities and interests. Software engineering techniques and tools are only effective when applied in a context which respects these different skills and abilities. Changes from the fourth edition Like many software systems, this book has grown and changed since its first edition was published in 1982. This latest edition started as a relatively minor update of the fourth edition but, in the course of writing the book, I decided that more significant revision and re-engineering was necessary. Although much of the material in the fourth edition has been retained, the following changes have been made: There are five completely new chapters covering computer-based system engineering, requirements analysis, architectural design, process improvement and software re-engineering. The book has been restructured into eight parts covering an introduction to software engineering, requirements and specification, design, dependable systems development, verification and validation, CASE, management, and software evolution. There have been radical revisions of the material on requirements engineering, object-oriented and functional design, and CASE. Project management is introduced in the first part of the book then covered in more detail in a separate section which incorporates previous material on human factors. There is more emphasis on quality management. In previous editions, I have presented program examples in Ada as I consider this an excellent language for large-scale software engineering. However, Ada has not become as widely used as was once predicted. C or C++ are the programming languages of choice for most personal computer and workstation applications. Because of this wide use, I have included C++ as well as Ada versions of most of the program examples in the book. For safety-critical systems, however, I think it unwise to use a language which includes potentially unsafe constructs. Those examples are, therefore, only presented in Ada. I considered for a long time whether it would be appropriate to include a new chapter on professional and ethical issues. I decided not to do so because the topic is so subjective that it is difficult to present in a balanced way in a single chapter. There are no absolutes in this area and it is best addressed in an interactive context rather than as a chapter of a book. However, I have included a brief discussion of these issues in the introduction to the book. I have also included possible ethical and professional topics for discussion as exercises in many chapters. Links to WWW pages on this topic are included in the Web page whose URL is given below. The further reading associated with each chapter has been updated from previous editions. However, in many cases, articles written in the 1980s are still the best introduction to some topics. As new articles which are useful become available, I will include them on the Web page. The author index in previous editions has been removed. Rather, each entry in the References section includes the page numbers where it has been referenced. Readership The book is aimed at students in undergraduate and graduate courses and at software engineers in commerce and industry. It may be used in general software engineering courses or in courses such as advanced programming, software specification, software design or management. Practitioners may find the book useful as general reading and as a means of updating their knowledge on particular topics such as requirements engineering, architectural design, dependable systems development and process improvement. Wherever practicable, the examples in the text have been given a practical bias to reflect the type of applications which software engineers must develop. I assume that readers have a basic familiarity with programming and modern computer systems. Some examples rely on knowledge of basic data structures such as stacks, lists and queues. The chapters on formal specification assume knowledge of very elementary set theory. No other mathematical background is required. Using the book as a course text There are three main types of software engineering courses where this book can be used: General introductory courses in software engineering. For students who have no previous software engineering experience, you can start with the introductory section then pick and choose the introductory chapters from the different sections of the book. This will give students a general overview of the subject with the opportunity of more detailed study for those students who are interested. Introductory or intermediate courses on specific topics in software engineering such as software specification, design or dependable systems development. Each of the parts in the book can serve as a text in its own right for an introductory or intermediate course on that topic. More advanced courses in specific software engineering topics. In this case, the chapters in the book form a foundation for the course which must be supplemented with further reading which explores the topic in more detail. All chapters include my suggestions for further reading. The benefit of a general text like this is that it can be used in several different related courses. At Lancaster, we use the text in an introductory software engineering course, in courses on specification, design and critical systems and in a software management course where it is supplemented with further reading. With a single text, students are presented with a consistent view of the subject. They also like the extensive coverage because they don't have to buy several different books. This book covers all suggested material in Units SE2 to SE5 in the ACM/IEEE 1991 Curriculum. It also includes material to supplement an introductory programming text which would normally cover Unit SE1 and all material in the suggested course entitled 'Advanced Software Engineering'. Supplements The following supplements are available: An instructor's guide including hints on teaching the material in each chapter, class and term project suggestions, and solutions to some of the exercises. This is available in Postscript or on paper from Addison-Wesley. A set of overhead projector transparencies for each chapter. These are available in Postscript and in Microsoft Powerpoint format. Source code for most of the individual program examples including supplementary code required for compilation. An introduction to the Ada programming language. Information on course presentation using electronically mediated communication and links to material for that approach to teaching. These are available, free of charge, over the Internet at URL: ...