170 likes | 181 Views
Learn about various stages, types, techniques, views, and roles in smart system design with a focus on decomposition, interfaces, and relationships with key roles like software architects, system engineers, and hardware architects.
E N D
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Stages of design • High level design • High level data structure • Architecture • Low level design-code design • Algorithms • Low level data structures • Executable design • Very lower level of detail
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Types of design • Data design • Architectural design • External interface design • Algorithmic design
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Design techniques • Require some sort of decomposition • Modular decomposition • Data oriented decomposition • Event oriented decomposition • Outside in design • Object oriented design
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Architectural view -2 • Which structure are used, and why? • Common view include • Module • Process • Uses • Class • Data flow • Class • physical
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Typical roles and responsibilities • Requirements • Technical risk • Analysis of problem domain • Design of overall software • Reviewer and approver of deliverables • Mentoring of design and developers • Integration and test support • Implementation support • Team lead • Laison to project management
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles • Project management • Responsibilities • Program planning, subcontract management, supplier management, software estimation, release management, operation management • Relation to software architect • Software architect works with project management in definition of release contents and prioritization of features included or omitted from a release
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Development team managers • Responsibilities • Managing individual development teams • Relation to software architect • These managers should clearly understand the interface they provide and consume to other development teams and external entities • High level aspects (COTS tools for interfaces, complexity of development, modification of each interface)
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • System architect/ chief engineer • Responsibilities • Overall system design and delivery • Technical leadership pf the systems engineering, software development, hardware design, network design, even test organizations • Relation to software architect • Interfaces between development teams, external interfaces, requirements related issues • Identify and resolve significant technical issues
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Chief software engineering • Responsibilities • Ensures the process is followed thoroughout the development life cycle. • Relation to software architect • To make sure the delivered software meets the requirements and the interface and port definitions match by those defined by software architect team.
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Hardware architect • Responsibilities • Selecting and configuring of hardware • Relation to software architect • Software architect provides low level requirements for selecting hardware • Hardware architect informs hardware restriction to provide requirements • Software architect makes sure the software architecture id defined within the constraints of the hardware.
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Network architect • Responsibilities • Defining the LAN and WAN design and configuration • Relation to software architect • Communicate for defining network requirements • Defines constraints implies by network back to software architect
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Technical leads of each release • Responsibilities • Deliver each major release • Relation to software architect • Communicate for technical issues • Software architect deliver a set of architecture views to the technical lead • Communication and interfaces with previous release
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Data architect • Responsibilities • Definition, development and documentation of the data architect. • Relation to software architect • A member of architecture team. • Software architect have final approval of the data architecture.
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • System engineering leads • Responsibilities • Responsible for delivering the system requirements • Relation to software architect • Software architect review these requirements to make sure they can be delivered • Given the project constraints • Provide feedback to the system engineer
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Relation to other key roles (con) • Software system engineering lead • Responsibilities • Translates and maps the requirements from higher level system group into lower level requirements • Relation to software architect • Software architecture will often be provided th the organization • SSE team will evolve the software architecture in translating requirements
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Skills and background for the architect • Extensive software design and development • Technical leadership • Team facilitation skills • Communication skills • Technical skills • Knowledge of component communication mechanisms • Knowledge of domain • Abstraction skills
آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab) Traps and pitfalls • Clear definition of leadership • Reporting structure for the software architect • Geographical location of software architect and technical leads • Architecture team size and composition • Software architect lifecycle participation