Conception du logiciel et Architecture du logiciel [fermé]

Quelqu'un pourrait-il expliquer la différence entre la conception du Logiciel et L'Architecture du logiciel?

plus précisément; si vous dites à quelqu'un de vous présenter le "design" - que voudriez-vous qu'ils présentent? Il en va de même pour l '"architecture".

ma compréhension actuelle est:

  • conception: diagramme UML/diagramme / wireframes simples (pour UI) pour un module/une partie spécifique du système
  • Architecture: schéma des composants (montrant comment les différents modules du système communiquent entre eux et avec d'autres systèmes), quelle langue doit être utilisée, modèles...?

corrigez-moi si je me trompe. J'ai référé Wikipedia a des articles sur http://en.wikipedia.org/wiki/Software_design et http://en.wikipedia.org/wiki/Software_architecture , mais je ne sais pas si je les ai bien compris.

338
demandé sur TryinHard 2009-04-01 14:00:50

30 réponses

vous avez raison, Oui. L'architecture d'un système est son "squelette". C'est le plus haut niveau d'abstraction d'un système. Quel type de stockage de données est présent, comment les modules interagissent-ils les uns avec les autres, quels sont les systèmes de récupération en place. Tout comme les modèles de design, il existe des modèles architecturaux: MVC, 3-tier layered design, etc.

la conception du logiciel consiste à concevoir les modules / composants individuels. Quelles sont les responsabilités, les fonctions du module x? De la classe de Y? Que peut-il faire, et ce n'est pas? Quels modèles peuvent être utilisés?

donc, en résumé, l'architecture logicielle est davantage axée sur la conception de l'ensemble du système, tandis que la conception logicielle met l'accent sur le niveau module / composant / classe.

327
répondu Razzie 2014-03-11 19:50:44

dans certaines descriptions du SDLC (Software Development Life Cycle) ils sont interchangeables, mais le consesus est qu'ils sont distincts. Ils sont à la fois: différents (1) stades , (2) domaines de responsabilité , et (3) niveaux de prise de décision .

  • Architecture des cadres, des langues, de la portée, des objectifs et des méthodologies ( Rationnel , chute d'eau , agile , etc.).
  • Design est une image plus petite: le plan pour la façon dont le code sera organisé; comment les contrats entre les différentes parties du système seront regardées; le en cours de "mise en œuvre des méthodologies et des objectifs du projet. Cahier des charges sont écrit au cours de cette étape.

ces deux étapes vont sembler se fondre ensemble pour des raisons différentes.

  1. les petits projets n'ont souvent pas une portée suffisante pour séparer la planification en ces étapes.
  2. un projet peut faire partie d'un projet plus vaste et, par conséquent, certaines parties des deux étapes sont déjà décidées. (Il existe déjà des bases de données, des conventions, des normes, protocoles, cadres, code réutilisable,etc.)
  3. de nouvelles manières de penser au sujet de la SDLC (voir méthodes Agiles ) un peu réorganiser cette approche traditionnelle. La conception (l'architecture dans une moindre mesure) a lieu tout au long du SDLC on purpose . Il ya souvent plus itérations où l'ensemble du processus se produit encore et encore.
  4. le développement de logiciels est compliqué et de toute façon, il est difficile de planifier, mais les clients, les gestionnaires et les vendeurs rendent les choses plus difficiles en changeant les objectifs et les exigences à mi-parcours. Design et même les décisions architecturales doit être fait plus tard dans le projet, que ce soit le plan ou non.

même si les étapes ou les domaines de responsabilité se mêlent et se produisent partout, il est toujours bon de savoir à quel niveau de prise de décision on se trouve. (On pourrait continuer indéfiniment avec ce. J'essaie de garder un résumé.) Je terminerai par: même s'il semble que votre projet n'a pas d'étape formelle d'architecture ou de design/AOR/documentaiton, il se produit que quelqu'un le fasse consciemment ou non. Si personne ne décide de faire de l'architecture, alors une architecture par défaut se produit qui est probablement pauvre. Idem pour le design. Ces concepts sont presque plus important s'il n'y a pas d'étapes formelles les représentant.

78
répondu Patrick Karcher 2009-12-24 16:21:57

L'Architecture est stratégique, tandis que le Design est tactique.

L'Architecture comprend les cadres, les outils, les paradigmes de programmation, les normes d'ingénierie logicielle basées sur les composants, les principes de haut niveau..

tandis que le design est une activité liée aux contraintes locales, comme les modèles de conception, les idiomes de programmation et les remaniements.

54
répondu Chris Kannon 2012-04-18 13:53:24

j'ai trouvé cela comme je cherchais une distinction simple entre l'architecture et le design moi-même;

Que pensez-vous de cette manière de voir:

  • l'architecture est" ce que "nous construisons";
  • le design est "comment" nous sommes des capacités;
38
répondu George S. 2012-03-28 18:22:38
  1. Architecture de la structure conceptuelle et l'organisation logique d'un ordinateur ou d'un système informatique.

    dessin désigne un plan ou un dessin produit pour montrer l'apparence et la fonction ou le fonctionnement d'un système ou d'un objet avant sa fabrication.

  2. si vous "construisez" un composant, vous définissez son comportement dans le système plus grand.

    si vous concevez" le même composant, vous définissez comment il se comporte en interne.

toute architecture est design mais pas tout design est architecture.

What partie est la conception, le How est la mise en œuvre concrète et l'intersection de What et How est L'Architecture.

Image pour la différenciation de l'Architecture et du Design :

Design vs Architecture

il y a aussi des décisions de conception qui ne sont pas importantes sur le plan architectural, c'est-à-dire qui n'appartiennent pas à la branche architecture de la conception. Par exemple, les décisions internes de conception de certains composants, comme - le choix de l'algorithme, la sélection de la structure des données, etc.

toute décision de conception qui n'est pas visible à l'extérieur des limites des composants constitue la conception interne d'un composant et est non architecturale. Ce sont les décisions de conception qu'un architecte de système laisserait à la discrétion du concepteur de module ou de l'équipe de mise en œuvre, dans la mesure où leur conception ne brise pas les contraintes architecturales imposées par l'architecture au niveau du système.

le lien qui donne bonne analogie

20
répondu TryinHard 2016-03-02 14:47:26

je dirais que vous avez raison, selon mes propres mots;

Architecture désigne l'attribution des exigences du système aux éléments du système. Quatre énoncés sur une architecture:

  1. il peut introduire des exigences non fonctionnelles Comme la langue ou les modèles.
  2. définit l'interaction entre les composants, les interfaces, le timing, etc.
  3. Il ne doit pas introduire de nouvelles fonctionnalités,
  4. il attribue aux éléments les fonctions (conçues) que le système est censé exécuter.

l'Architecture est une l'essentiel de l'ingénierie de l'étape quand une complexité du système est subdivisé.

exemple: pensez à votre maison, vous n'avez pas besoin d'un architecte pour votre cuisine (un seul élément impliqué), mais le bâtiment complet a besoin de certaines définitions d'interaction, comme les portes, et un toit .

Design est un informative représentation du (projet de) la mise en œuvre de la fonction. Il vise à obtenir des commentaires et à discuter avec les intervenants. Il peut s'agir d'une bonne pratique, mais n'est pas une étape essentielle de l'ingénierie .

il serait agréable de voir le design de la cuisine voir avant que la cuisine est installée, mais il n'est pas essentiel pour la cuisson exigence :

si j'y pense, vous pouvez dire:

  • l'architecture est pour un public/ingénieurs sur un plan plus détaillé de niveau d'abstraction
  • conception est prévue pour le public sur un niveau d'abstraction
15
répondu user662182 2012-09-13 13:45:22

mon rappel:

  • nous pouvons changer la conception sans demander à quelqu'un
  • si nous changeons L'Architecture, nous devons la communiquer à quelqu'un (équipe, client, intervenant,...)
14
répondu Peter Gfader 2012-11-23 23:31:10

je pense que nous devrions utiliser la règle suivante pour déterminer quand nous parlons de conception vs Architecture: si les éléments d'une image logicielle que vous avez créé peuvent être mappés un à un à une construction syntaxique de langage de programmation, alors est le Design, si ce n'est pas L'Architecture.

ainsi, par exemple, si vous voyez un diagramme de classe ou un diagramme de séquence, vous êtes en mesure de mapper une classe et ses relations à un langage de programmation orienté objet en utilisant la classe syntaxique de la construction. C'est clairement de la Conception. En outre, cela pourrait amener à la table que cette discussion a une relation avec le langage de programmation que vous utiliserez pour mettre en œuvre un système logiciel. Si vous utilisez Java, l'exemple précédent s'applique, car Java est un langage de programmation orienté objet. Si vous arrivez avec un diagramme qui montre les paquets et leurs dépendances, C'est aussi du Design. Vous pouvez mapper l'élément (un paquet dans ce cas) à une construction syntaxique Java.

maintenant, supposons que votre application Java soit divisée en modules, et que chaque module soit un ensemble de paquets (représenté comme une unité de déploiement de fichiers jar), et que vous soyez présenté avec un diagramme contenant les modules et leurs dépendances, alors, C'est L'Architecture. Il n'y a aucun moyen en Java (du moins pas avant Java 7) de mapper un module (un ensemble de paquets) à une construction syntaxique. Vous remarquerez peut-être aussi que ce diagramme représente un pas plus haut dans le niveau d'abstraction de votre modèle logiciel. N'importe quel diagramme ci-dessus (à grain grossier que) un diagramme de paquet, représente une vue architecturale lors du développement dans le langage de programmation Java. D'un autre côté, si vous développez en Modula-2, alors un schéma de module représente une conception.

(un fragment de http://www.copypasteisforword.com/notes/software-architecture-vs-software-design )

6
répondu Enrique Molinari 2011-07-14 02:58:21

personnellement, J'aime celui-ci:

" le concepteur se préoccupe de ce qui se passe lorsqu'un utilisateur appuie sur un bouton, et l'architecte se préoccupe de ce qui se passe lorsque dix mille utilisateurs appuient sur un bouton."

SCEA for Java™ EE Study Guide par Mark Cade et Humphrey Sheil

5
répondu Tavi 2010-04-12 17:04:38

je suis d'accord avec bon nombre des explications; essentiellement, nous reconnaissons la distinction entre la conception architecturale et la conception détaillée des systèmes logiciels.

Alors que l'objectif du concepteur est d'être aussi précis et concret dans le cahier des charges tel qu'il sera nécessaire pour le développement; l'architecte vise essentiellement à préciser la structure et le comportement global du système, tout autant que nécessaire pour la conception détaillée pour commencer.

un bon architecte empêchera les hyper-spécifications - l'architecture ne doit pas être exagérément spécifiée, mais juste assez, les décisions (architecturales) établies seulement pour les aspects qui présentent les risques les plus coûteux à gérer, et fournir efficacement un cadre ("commonality") à l'intérieur duquel la conception détaillée peut être travaillé sur c.-à-d. la variabilité pour la fonctionnalité locale.

en effet, le processus d'architecture ou le cycle de vie suit simplement ce thème - niveau adéquat d'abstraction pour décrire la structure des exigences opérationnelles importantes (sur le plan de l'architecture) et laisser plus de détails à la phase de conception pour des produits livrables plus concrets.

5
répondu Ajay Shendye 2012-06-16 22:01:02

l'Architecture est le design, mais pas tous de la conception architecturale. par conséquent, à proprement parler, il serait plus logique d'essayer de faire la différence entre design architectural et design non architectural . Et quelle est la différence? Ça dépend! Chaque architecte logiciel peut avoir une réponse différente (ymmv!). Nous développons nos heuristiques pour trouver une réponse, comme " les diagrammes de classe sont l'architecture et la séquence les diagrammes sont des dessins. Voir DSA book pour plus d'informations.

il est courant de dire que l'architecture est à un niveau d'abstraction plus élevé que le design, ou l'architecture est logique et le design est physique. Mais cette notion, bien qu'elle soit communément acceptée, est en pratique inutile. Où tracer la ligne entre abstraction haute ou basse, entre logique et physique? Ça dépend!

donc, ma suggestion est:

  • créer un seul document de conception.
  • nommez ce document de design de la façon que vous voulez ou, mieux, la façon dont les lecteurs sont plus habitués. Exemples: "Architecture Logicielle", "Logiciel De Conception De Cahier Des Charges".
  • divisez ce document en vues et gardez à l'esprit que vous pouvez créer une vue comme un raffinement d'une autre vue.
  • rendre la vue dans le document navigables par l'ajout de renvois ou des liens hypertextes
  • alors vous aurez des vues de plus haut niveau montrant une vue d'ensemble large mais superficielle de la conception, et des vues plus proches de la mise en œuvre montrant des détails de conception étroite mais plus profonde.
  • vous pouvez jeter un coup d'oeil à un exemple de document d'architecture à vues multiples ( ici ).

ayant dit tout cela... une question plus pertinente que nous devons poser est: combien de design est suffisant? C'est-à-dire, Quand dois-je arrêter décrire la conception (sous forme de Diagrammes ou de prose) et passer au codage?

5
répondu Paulo Merson 2017-04-18 18:56:51

ça me semble bien. La conception est ce que vous allez faire, et l'architecture est la façon dont les morceaux de la conception seront réunis. Il pourrait être agnostique de langage, mais devrait normalement spécifier les technologies à utiliser, C'est-à-dire LAMP v Windows, Web Service v RPC.

3
répondu MrTelly 2009-04-01 10:05:04

l'architecture logicielle d'un programme ou d'un système informatique est la structure ou les structures du système, qui comprennent les composants logiciels, les propriétés visibles de l'extérieur de ces composants, et les relations entre eux.

(D'après Wikipedia, http://en.wikipedia.org/wiki/Software_architecture )

la conception du Logiciel est un processus de résolution de problèmes et de planification d'une solution logicielle. Après l' le but et les spécifications du logiciel sont déterminés, les développeurs de logiciels concevront ou emploieront des concepteurs pour élaborer un plan pour une solution. Il comprend des problèmes de mise en œuvre de composants et d'algorithmes de bas niveau ainsi que la vue architecturale.

(de Wikipedia, http://en.wikipedia.org/wiki/Software_design )

n'aurait pas pu dire mieux moi-même :)

3
répondu Larry Watanabe 2009-12-24 15:45:07

je considère l'architecture comme Patrick Karcher - la grande image. Par exemple, vous pouvez fournir l'architecture d'un bâtiment, voir son support structurel, les fenêtres, les entrées et sorties, le drainage de l'eau, etc. Mais vous n'avez pas "conçu" la disposition des étages, les positions des cabines, etc.

donc pendant que vous avez construit le bâtiment vous n'avez pas conçu la disposition de chaque bureau. Je pense que la même chose est vraie pour les logiciels.

vous pouvez voir la conception de la disposition, "l'architecture de la mise en page"...

3
répondu mr-sk 2009-12-24 15:45:20

bonne question... Bien que la ligne entre eux est à peine une ligne vive, imho, si vous utilisez les deux termes, puis L'Architecture englobe des décisions plus techniques ou structurelles sur la façon de construire ou construire quelque chose, en particulier les décisions qui seront difficiles (ou plus difficiles) à changer une fois mis en œuvre, tandis que la conception englobe les décisions qui sont faciles à changer plus tard (comme les noms de méthode, la structure organisationnelle de la classe< ->, les modèles de conception, si à utilisez une classe simple ou statique pour résoudre un problème spécifique, etc. ) et / ou ceux qui affectent l'apparence ou les aspects esthétiques d'un système ou d'une application (Interface humaine, facilité d'utilisation, apparence, etc.)

3
répondu Charles Bretana 2009-12-24 15:49:06

Logiciel architecture est"préoccupée par des questions...au-delà des algorithmes et des structures de données du calcul.

l'Architecture est précisément pas sur...les détails d'implémentation (par exemple, des algorithmes et des structures de données.) La conception architecturale implique une collection d'abstractions plus riche que celle qui est généralement fournie par la conception orientée objet (OOD).

Design concerne le modularisation et interfaces détaillées des éléments de conception, de leurs algorithmes et procédures, et des types de données nécessaires pour soutenir l'architecture et répondre aux exigences.

"architecture" est souvent utilisé comme un simple synonyme de "design" (parfois précédé de l'adjectif "haut niveau"). Et beaucoup de gens utilisent le terme "motifs architecturaux" comme synonyme de "motifs de conception."

Regardez ce lien.

définition des Termes Architecture, Design ,and Implementation

3
répondu Tebo 2009-12-24 15:50:34

Architecture:

Conception structurelle travaux à des niveaux d'abstraction plus élevés qui permettent de réaliser des exigences techniques importantes dans le système. L'architecture établit base pour la conception.

Design:

L'art de remplir ce que l'architecture n'est pas à travers un processus itératif à chaque couche d'abstraction.

3
répondu Joshua Ramirez 2009-12-24 15:55:47

j'ai vraiment aimé ce papier pour une règle empirique sur la séparation entre l'architecture et le design:

http://www.eden-study.org/articles/2006/abstraction-classes-sw-design_ieesw.pdf

c'est ce qu'on appelle l'hypothèse de L'intensité/localité. Les énoncés sur la nature du logiciel qui ne sont pas locaux et intentionnels sont d'ordre architectural. Les énoncés qui sont locaux et intentionnels sont conçus.

3
répondu LindsayBradford 2012-01-23 04:58:27

...il y a longtemps dans un endroit lointain philosophes inquiet au sujet de la distinction entre l'un et le multiple. L'Architecture est une question de relation, ce qui exige beaucoup. L'Architecture a des composantes. La conception est une question de contenu, ce qui nécessite l'un. La conception a des propriétés, des qualités, des caractères. Nous pensons généralement que le design fait partie de l'architecture. La pensée dualiste donne au plus grand nombre un caractère primordial. Mais l'architecture est aussi dans le design. C'est tout ce que nous choisissons de voir ce qui est devant nous - le seul ou les plusieurs.

3
répondu buzzcoda 2012-04-05 15:44:52

Assez subjectif, mais de mon point de vue:

Architecture La conception globale du système, y compris les interactions avec d'autres systèmes, les exigences en matière de matériel, la conception globale des composants et le flux de données.

Design L'organisation et le déroulement d'une composante dans le système global. Cela inclurait également L'API du composant pour l'interaction avec d'autres composants.

3
répondu Jesse Vogt 2013-01-03 09:01:16

l'architecture logicielle est mieux utilisée au niveau du système, quand vous avez besoin de projeter des activités et des fonctions identifier par des niveaux d'architecture plus élevés dans les applications.

par exemple, votre entreprise est sur" le Profit et la perte "pour les commerçants, et vos principales fonctions ont impliqué" l'évaluation de portefeuille "et"calcul du risque".

mais quand un Architecte Logiciel détaille sa solution, il se rendra compte que:

"évaluation du portefeuille" ne peut pas être juste une application. Il doit être affiné dans des projets gérables comme:

  • GUI
  • lanceur
  • Dispatcher
  • ...

(parce que les opérations concernées sont si énormes qu'elles doivent être divisées entre plusieurs ordinateurs, tout en étant surveillées en tout temps au moyen d'une interface graphique commune)

la conception D'un logiciel examinera les différentes applications, leurs relations techniques et leurs sous-composantes internes.

Il produira les spécifications nécessaires pour la dernière couche Architecture (l '"Architecture technique") à travailler sur (en termes de cadre technique ou de composants transversaux), et pour les équipes de projet (plus orientés sur la mise en œuvre du business les fonctions) pour commencer leurs projets respectifs.

2
répondu VonC 2017-05-23 12:02:48

si quelqu'un construit un navire, moteur, coque, électrique-etc circuits. seront ses "éléments architecturaux". Pour lui, la construction de moteurs sera un "travail de conception".

s'il délègue alors la construction du moteur à une autre équipe, ils vont créer une"architecture du moteur"...

cela dépend du niveau d'abstraction ou de détail. L'architecture d'une personne peut être celle d'une autre!

2
répondu Gernot Starke 2012-10-21 14:59:46

Architecture "les décisions de conception qui sont difficiles à changer."

après avoir travaillé avec TDD, ce qui signifie pratiquement que votre design change tout le temps, je me suis souvent trouvé aux prises avec cette question. La définition ci-dessus est extraite de Patterns of Enterprise Application Architecture , par Martin Fowler

cela signifie que L'architecture dépend de la langue, le cadre et le nom de Domaine de votre système. Si vous pouvez simplement extraire une interface de votre classe Java en 5 minutes, il n'est plus et la décision d'architecture.

2
répondu ekeren 2013-03-24 16:17:39

Cliff Notes version:

Conception: mise en Œuvre d'une solution basée sur les spécifications du produit désiré.

Architecture: la fondation/les outils/l'infrastructure / les composants qui soutiennent votre conception.

il s'agit d'une question assez générale qui suscitera de nombreuses réponses.

1
répondu kd7 2009-12-24 15:43:16

Architecture est la collection résultante de modèles de conception pour construire un système.

je suppose que le Design est la créativité utilisée pour rassembler tout cela?

1
répondu Mark Redman 2009-12-24 15:43:27

la conception de logiciel a une histoire plus longue tandis que l'architecture de logiciel terme est à peine 20 ans. Par conséquent, il traverse des douleurs de croissance en ce moment.

les universitaires ont tendance à considérer L'Architecture comme faisant partie du domaine plus vaste de la conception de logiciels. Bien qu'il soit de plus en plus reconnu que Arch est un domaine qui lui est propre.

les praticiens ont tendance à voir Arch comme des décisions de conception de haut niveau qui sont stratégiques et peuvent être coûteuses dans un projet pour annuler.

la ligne exacte entre Arch et design dépend du domaine logiciel. Par exemple, dans le domaine des Applications Web, l'architecture en couches gagne en popularité à l'heure actuelle (couche Logique Biz, couche D'accès aux données, etc.) Les parties inférieures de cet arc sont considérées comme de la conception (diagrammes de classe, signatures de méthode, etc. Ceci pourrait être défini différemment dans les domaines des systèmes embarqués, systèmes d'exploitation, compilateurs, etc.

1
répondu LWoodyiii 2009-12-29 13:24:45

Architecture est de haut niveau, la conception abstraite et logique tandis que la conception de logiciels est de bas niveau, la conception détaillée et physique.

1
répondu imran 2011-02-24 05:32:51
1
répondu Durga Vaddi 2011-07-04 06:39:08

J'aime la définition et l'explication de Roy Thomas Fielding sur ce qu'est l'architecture logicielle dans son papier: les Styles de l'Architecture et de la Conception de Réseau basée sur les Architectures Logicielles

Une architecture logicielle est une abstraction de l'exécution des éléments d'un système logiciel pendant une certaine phase de son opération. Un système peut être composé de plusieurs niveaux d'abstraction et de nombreuses phases de l'opération, chacune avec sa propre l'architecture du logiciel.

il souligne" run-time elements "et"levels of abstraction".

1
répondu Jacky 2013-01-12 14:14:30

il n'y a pas de réponse définitive à cela parce que" architecture logicielle "et" conception logicielle " ont un certain nombre de définitions et il n'y a pas de définition canonique pour l'une ou l'autre.

une bonne façon d'y penser est la déclaration de Len Bass, Paul Clements et Rick Kazman selon laquelle "toute architecture est design mais pas tout design est architecture" [Software Architecture in Practice]. Je ne suis pas sûr que je suis tout à fait d'accord avec cela (parce que l'architecture peut inclure d'autres activités) mais il saisit l'essence que l'architecture est une activité de conception qui traite du sous-ensemble critique de la conception.

ma définition légèrement désinvolte (trouvée sur la page sei definitions ) est que c'est l'ensemble des décisions qui, si prises à tort, font que votre projet est annulé.

une tentative utile de séparer l'architecture, la conception et la mise en œuvre comme concepts a été fait par Amnon Eden et Rick Kazman Il ya quelques années dans un document de recherche intitulé "Architecture, Design, Implementation" qui peut être trouvé ici: http://www.sei.cmu.edu/library/assets/ICSE03-1.pdf . Leur langage est assez abstrait mais simpliste ils disent que architecture est un design qui peut être utilisé dans de nombreux contextes et est destiné à être appliqué à travers le système, design est (err) design qui peut être utilisé dans de nombreux contextes mais est appliqué dans une partie spécifique du système, et implementation est une conception spécifique à un contexte et appliquée dans ce contexte.

ainsi, une décision architecturale pourrait être une décision d'intégrer le système par messagerie plutôt que par RPC (c'est donc un principe général qui pourrait être appliqué à de nombreux endroits et qui est destiné à s'appliquer à l'ensemble du système), une décision de conception pourrait être d'utiliser une structure de filetage maître/esclave dans le module de gestion de la demande d'entrée du système (un principe général qui enfin, une décision de mise en œuvre pourrait consister à déplacer les responsabilités en matière de sécurité du routeur de requête vers le Gestionnaire de requête du module Request Manager (une décision qui ne concerne que ce contexte, utilisé dans ce contexte).

j'espère que cela aide!

1
répondu Eoin 2013-10-13 21:49:31