STEAM undertakes a variety of research projects within the domain of advanced software systems with a view to applying engineering discipline to software development, ensuring that software products will meet organizational, financial, marketplace, and technical requirements. Like other fields of engineering, software engineering (and STEAMS interests) are a hybrid of scientific, technical, measurement and management principles.
While STEAM is active in all four of the principle IT domains (Embedded, Desktop, Web-based, Mobile), it is currently most active in the domain of web-based applications or web engineering. Web applications have characteristics that make it different from traditional software and information systems. Web engineering focuses on the methodologies, techniques and tools for Web application design, development, evolution, and evaluation.
Web engineering should not strictly be considered a subset of software engineering. While Web Engineering uses software engineering principles, it encompasses new approaches, methodologies, tools, techniques, and guidelines to meet the unique requirements of Web-based applications. However, perhaps someday, the two will merge as traditional systems tend to incorporate web-based components on an increasingly regular basis.
Regardless of the domain, previous, Current and Future projects are likely to fall within one or more of these domains..
- Requirements Engineering (Requirements elicitation from Customer or the market place; requirements definition)
- Product Design (Does the elicited requirements meet the needs of the marketplace? If not, let's change them?)
- Software Design (Defining the structure of the software system - including the interface)
- Construction (Coding and debugging, ensuring flexibility in the construction)
- Verification and Validation (Am I producing the correct product?)
- Evaluation (Am I still producing a product which will sell?)
- Maintenance (Of everything! Some software products have very long life spans, the continuous evolution of a software product is far from trivial)
- Configuration management (Identification, documentation and change control of project artifacts)
- Quality Assurance (Conformation to requirements and business objectives);
- Software and Product Measurement (Management of the process requires 'performance' numbers!)
- Software Production Infrastructure (Tool and methodology support for the production processes)
- Managing the Team (Are the group dynamics of the production team working?)
- Managing the process (Constantly improving the software development process with regard to: quality, cost, and time)
- Systems Engineering (Does the product have the correct safety, availability and security characteristics?)
- Domains of Application (Does the product have real-time, concurrent, distributed or large data set characteristics?)