Anthony J. Lattanze

Associate Teaching Professor, Masters of Software Engineering Program

Institute for Software Research, Carnegie Mellon University

 

Home

 

*   Home

 

*   Bio

 

*   Courses

 

*   Software Studio

 

*   Research

 

*   Consultation and Industry Collaboration

 

*   Publications

 

*   Contact Information

 

Software engineering is not for the faint of heart. Developing large, multidisciplinary, software intensive systems is fundamentally a difficult and risky undertaking.  Arguably the most challenging aspect of developing these kinds of systems is translating what diverse communities of stakeholders describe as requirements, into coherent designs. Turning the corner from “what is needed” to “how it will be built” is a chaotic time in the of best projects, and is often the origin of many difficult technical and programmatic problems. Early lifecycle design decisions are easy to make, but are also easy to get wrong, resulting in deep systemic problems. In most cases, these early designs are not created or analyzed by organizations in a systematic or disciplined way. Organizations are bound to these early design decisions for the lifetime of the system. Unfortunately, poor decisions are often too expensive to undo later in the lifecycle.

I am particularly interested in the science of early lifecycle design for software intensive systems – some call this Architectural Design.